为hsqldb创建模式时出现语法错误

时间:2013-11-28 11:35:20

标签: sql syntax-error database-schema hsqldb

我正在尝试创建一个新的模式和一些表,但是当我尝试更改最近创建的表以设置外出键时,我遇到了问题。我得到的错误是

  

此时并未预期“改变”这个词

(如果我删除了脚本工作的alter语句,并且如果在执行表和模式的创建之后执行alter,它也可以工作,但我需要一切工作作为一个整体)。我正在使用HSQL数据库管理器。

CREATE SCHEMA TEST2 
CREATE TABLE TEST2.T1 (ID_T1 bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1), CODE varchar(200), ID_T2 integer NOT NULL, PRIMARY KEY (ID_T1))
CREATE TABLE TEST2.T2 (ID_T2 integer GENERATED BY DEFAULT AS IDENTITY (START WITH 1), DESCRIPTION varchar(200), PRIMARY KEY (ID_T2))
ALTER TABLE TEST2.T1 ADD CONSTRAINT FKT1333520 FOREIGN KEY (ID_T2) REFERENCES TEST2.T2(ID_T2) 

1 个答案:

答案 0 :(得分:2)

您可以在表定义中定义约束。它最后需要一个分号

CREATE SCHEMA TEST2 AUTHORIZATION DBA
CREATE TABLE TEST2.T1 (ID_T1 bigint GENERATED BY DEFAULT AS IDENTITY (START WITH 1), CODE varchar(200), ID_T2 integer NOT NULL, PRIMARY KEY (ID_T1))
CREATE TABLE TEST2.T2 (ID_T2 integer GENERATED BY DEFAULT AS IDENTITY (START WITH 1), DESCRIPTION varchar(200), PRIMARY KEY (ID_T2),
CONSTRAINT FKT1333520 FOREIGN KEY (ID_T2) REFERENCES TEST2.T2(ID_T2));