【问题标题】:I get this error "Error code 30000, SQL state 42X01: Syntax error: Encountered "AUTO_INCREMENT" at line 3, column 22." when I create a sql table我收到此错误“错误代码 30000,SQL 状态 42X01:语法错误:在第 3 行第 22 列遇到“AUTO_INCREMENT”。”当我创建一个 sql 表时
【发布时间】:2016-11-06 00:31:47
【问题描述】:
CREATE TABLE Products
(
Item_ID int NOT NULL AUTO_INCREMENT,
item_make varchar(255) NOT NULL,
item_model varchar(255),
brought_in_date varchar(255),
collected_date varchar(255),
whats_wrong varchar(255),
what_was_done varchar(255),
Price varchar(255),
CID varchar(255),
PRIMARY KEY (Item_ID),
FOREIGN KEY (CID) REFERENCES Customers(CID)
)

执行此操作时出现此错误

  Error code 30000, SQL state 42X01: Syntax error: Encountered "AUTO_INCREMENT" at line 3, column 22.

我在java数据库derby上使用sql

有谁知道我做错了什么。

【问题讨论】:

  • stackoverflow.com/questions/3308329/… 参考山姆发的帖子
  • 从代码看来是mysql
  • @Naranca 我不确定代码的哪些部分表明这是 MySQL,并且考虑到编辑它似乎是 Derby
  • 我可能错了,但错误部分是我认为的mysql
  • @Naranca 对于 MySQL,我希望收到一条错误消息 “您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在 'AUTO_INCREMENT 附近使用正确的语法' 在第 3 行"(如果使用 AUTO_INCREMENT 在 MySQL 中会出现语法错误)。

标签: java sql derby


【解决方案1】:

您应该使用 Derby 支持的 SQL 标准 GENERATED ALWAYS AS IDENTITY,而不是 AUTO_INCREMENT(这是 MySQL 方言):

CREATE TABLE Products
(
Item_ID int GENERATED ALWAYS AS IDENTITY not null primary key,
item_make varchar(255) NOT NULL,
item_model varchar(255),
brought_in_date varchar(255),
collected_date varchar(255),
whats_wrong varchar(255),
what_was_done varchar(255),
Price varchar(255),
CID varchar(255),
FOREIGN KEY (CID) REFERENCES Customers(CID)
)

【讨论】:

    【解决方案2】:

    根据 Derby 定义表页面,语法如下:

     CREATE TABLE PRODUCTS
     (
     ITEM_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1,  INCREMENT BY 1)
     ...
     UNIQUE (MAP_ID)
     )
    

    链接这里derby docs

    【讨论】:

    • 请注意,不需要指定(start with 1, increment by 1),因为这是默认设置。
    • @MarkRotteveel 对,这种情况是用一个新的空表启动一个新的数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2021-08-16
    • 2019-09-18
    相关资源
    最近更新 更多