gpt4 book ai didi

java - CREATE TABLE 中的 AUTO_INCREMENT 抛出 JDBC.SQLSERVEREXCEPTION

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:15 32 4
gpt4 key购买 nike

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

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com