我试图在我的 SQL 表中创建一个 AUTO_INCREMENT 字段,该字段是通过 SQL Statement.execute 创建的,但它继续抛出 com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'AUTO_INCREMENT '
.
这是我创建表格的代码:
public class CreateTable {
Connection con;
Statement stmt = null;
ResultSet queryResults = null;
public CreateTable() {
con = DatabaseUtil.getConnection();
try {
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
stmt.execute("IF OBJECT_ID('A00776920_Members') IS NOT NULL DROP TABLE A00776920_Members");
String createTable = "CREATE TABLE A00776920_Members ("
+ "memberid INT NOT NULL AUTO_INCREMENT, "
+ "firstName VARCHAR(30) DEFAULT NULL, "
+ "lastName VARCHAR(30) DEFAULT NULL, "
+ "address VARCHAR(40) DEFAULT NULL, "
+ "city VARCHAR(40) DEFAULT NULL, "
+ "code CHAR(7) DEFAULT NULL, "
+ "country VARCHAR(40) DEFAULT NULL, "
+ "phoneNumber CHAR(14) DEFAULT NULL, "
+ "email VARCHAR(40) DEFAULT NULL, "
+ "PRIMARY KEY (memberid))";
stmt.execute(createTable);
stmt.close();
con.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
new CreateTable();
}
向我抛出的确切错误是:
com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near 'AUTO_INCREMENT'.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(Unknown Source)
at a00776920.assignment.dao.CreateTable.<init>(CreateTable.java:40)
at a00776920.assignment.dao.CreateTable.main(CreateTable.java:53)
任何帮助将不胜感激! 干杯
最佳答案
您似乎使用了错误的 JDBC 驱动程序。 create table
语法显然是 MySQL,但您显然使用的是 MS SQL Server JDBC Driver。使用正确的驱动程序 - 你应该没问题。
您可以从这里下载 MySQL JDBC 驱动程序:http://dev.mysql.com/downloads/connector/j/5.5.html
关于java - CREATE TABLE 中的 AUTO_INCREMENT 抛出 JDBC.SQLSERVEREXCEPTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26474903/