我试图创建一个新的架构和一些表,但是当我尝试更改最近创建的表以设置前导键时遇到了问题。我得到的错误是
"Alter" word wasn´t expected at this point
(如果我删除了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)
最佳答案
您可以在表定义中定义约束。最后需要一个分号
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));
关于sql - 为hsqldb创建架构时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20265129/