sql - 为hsqldb创建架构时出现语法错误

标签 sql syntax-error database-schema hsqldb

我试图创建一个新的架构和一些表,但是当我尝试更改最近创建的表以设置前导键时遇到了问题。我得到的错误是

"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/

相关文章:

sql - 如何替换字符串的一部分(多个),每个字符串都有单独的条件

mysql - 导入的用户 ID 和主键?

python-3.x - python 'while'代码的语法错误

typescript - typescript 转换错误以获取输入值

mysql - Visual Studio 2013 上的 SQL 模式比较,有没有办法比较 2 个以上的数据库?

c# - 在所选数据源中找不到名称为 'ApproveID' 的字段或属性

php - 在同一脚本php中执行两个查询

python - 为什么我得到这个python语法indexerror

mysql - 数据库架构建议

sql - 让mysql在连续范围内重新分配id