为 hsqldb 创建架构时出现语法错误
Posted
技术标签:
【中文标题】为 hsqldb 创建架构时出现语法错误【英文标题】:Syntax error when creating schema for hsqldb 【发布时间】:2013-11-28 11:35:20 【问题描述】:我正在尝试创建一个新架构和一些表,但是当我尝试更改最近创建的表以设置外键时遇到问题。我得到的错误是
此时不应使用“Alter”一词
(如果我删除了 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】:您可以在表定义中定义约束。最后需要一个分号
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));
【讨论】:
嗨!谢谢:),那行得通,但实际上我发布了我的脚本的恢复示例。我有很多其他带有外键的表,我发现很难通过在表创建中指定主键来实现创建......以上是关于为 hsqldb 创建架构时出现语法错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 if 语句创建函数时出现 Postgresql 语法错误