我试图在我的MySQL数据库中创建一个表。这是我的代码:
//Table
public static void createTable() throws Exception
{
try {
Connection conn = getConnection();
PreparedStatement create = conn.prepareStatement("CREATE TABLE IF NOT EXIST registration(id int NOT NULL AUTO_INCREMENT,first_name varchar(45),last_name(45),email varchar(320),password varchar(50),PRIMARY KEY(id))");
create.executeUpdate();
}
catch(Exception e) {
System.out.println(e);
}
finally {
System.out.println("System Updated");
};
}
//End of Table
这是我遇到的错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在&#39; EXIST注册(id int NOT NULL AUTO_INCREMENT,first_name varchar(45),last_name(45),email var&#39; at line 1 < / p>
答案 0 :(得分:3)
此查询有两个问题:
if not exits
,最后加上“s”。last_name
列缺少某种类型(大概是varchar
?)把它们放在一起,你的SQL应该是这样的:
CREATE TABLE IF NOT EXISTS -- First issue
registration
(id INT NOT NULL AUTO_INCREMENT,
first_name VARCHAR(45),
last_name VARCHAR(45), -- Second issue
email VARCHAR(320),
password VARCHAR(50),
PRIMARY KEY(id)
)
答案 1 :(得分:0)
first_name varchar(45),last_name(45)
last_name没有与之关联的数据类型
试
last_name varchar(45)
答案 2 :(得分:0)
您的last_name列缺少数据类型,EXISTS拼写错误。你已经离开了's'。