当我运行代码时,Java Derby数据库中出现了这个外键错误



当我运行代码时,Java Derby数据库中出现了这个外键错误

CREATE TABLE PURCHASE (
$PURCHASEID INT NOT NULL GENERATED ALWAYS AS IDENTITY,$
$PURCHASEDATE DATE,$
$PURCHASEQUANTITY INT,$
$CHICPRICE DOUBLE,$
$CUSTNIC VARCHAR(14) NOT NULL,$
$PRIMARY KEY (PURCHASEID)$
$ FOREIGN KEY (CUSTNIC) REFERENCES CUSTOMER(CUSTNIC)$
);

[异常,错误代码30000,SQLState 42X01]语法错误:遇到";"外国";在第8行第9列。第8行第9列

如果在主键后加逗号,应该可以正常工作

CREATE TABLE PURCHASE (
$PURCHASEID INT NOT NULL GENERATED ALWAYS AS IDENTITY,$
$PURCHASEDATE DATE,$
$PURCHASEQUANTITY INT,$
$CHICPRICE DOUBLE,$
$CUSTNIC VARCHAR(14) NOT NULL,$
$PRIMARY KEY (PURCHASEID),$
$ FOREIGN KEY (CUSTNIC) REFERENCES CUSTOMER(CUSTNIC)$
);

只需尝试此

CREATE TABLE PURCHASE (
$PURCHASEID INT NOT NULL GENERATED ALWAYS AS IDENTITY,$
$PURCHASEDATE DATE,$
$PURCHASEQUANTITY INT,$
$CHICPRICE DOUBLE,$
$CUSTNIC VARCHAR(14) NOT NULL,$
$PRIMARY KEY (PURCHASEID)$
$FOREIGN KEY (CUSTNIC) REFERENCES CUSTOMER(CUSTNIC)$
);

尝试创建表,然后使用添加外键约束

alter table PURCHASE add FOREIGN KEY (CUSTNIC) 
REFERENCES CUSTOMER (CUSTNIC)  

并且似乎存在一个"FOREING 前丢失

最新更新