当我运行代码时,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 前丢失