【发布时间】:2014-12-07 10:25:34
【问题描述】:
我在本地 HSQLDB 2.3.2 数据库中运行以下 SQL:
CREATE TABLE IF NOT EXISTS countries (
country_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL PRIMARY KEY,
country_version INTEGER NOT NULL,
country_name NVARCHAR(100) NOT NULL,
country_label NVARCHAR(100) NOT NULL,
country_description NVARCHAR(500) NOT NULL
country_code NVARCHAR(10) NOT NULL,
CONSTRAINT uc_countries UNIQUE (country_id, country_version, country_label, country_description, country_code)
);
CREATE TABLE IF NOT EXISTS states (
state_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1) NOT NULL PRIMARY KEY,
state_version INTEGER NOT NULL
state_name NVARCHAR(100) NOT NULL,
state_label NVARCHAR(100) NOT NULL,
state_description NVARCHAR(500) NOT NULL,
country_id INT NOT NULL,
FOREIGN KEY (country_id) REFERENCES countries(country_id),
CONSTRAINT uc_states UNIQUE (state_id, state_version, state_label, state_description, country_id)
);
当我运行它时,我得到:
Error: unexpected token: FOREIGN
SQLState: 42581
ErrorCode: -5581
这里发生了什么,我能做些什么来解决它?
【问题讨论】:
-
为什么没有解释就投反对票?如果这是一个骗局,请告诉我这个问题是一个骗局!否则,这是SSCCE,显示了努力/研究,并包含诊断/排除故障所需的一切。
-
我没有对你投反对票,但我认为这是个好问题,所以我投了赞成票。
-
单独执行每条语句是否还会出现此错误?这可能是由于它的遵守方式。
-
感谢@april4181 (+1) - 这只是我的疏忽(请参阅我在已接受答案下的评论)。感谢您抽出宝贵时间提出这些建议!
标签: sql syntax-error hsqldb