我试图使用JDBC在MySQL数据库中创建一个表

时间:2016-10-11 19:35:47

标签: java mysql sql jdbc syntax-error

我试图在我的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>

3 个答案:

答案 0 :(得分:3)

此查询有两个问题:

  1. 应为if not exits,最后加上“s”。
  2. last_name列缺少某种类型(大概是varchar?)
  3. 把它们放在一起,你的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'。