【问题标题】:Syntax error when creating schema for hsqldb为 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) 

【问题讨论】:

    标签: sql syntax-error database-schema hsqldb


    【解决方案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));
    

    【讨论】:

    • 嗨!谢谢:),那行得通,但实际上我发布了我的脚本的恢复示例。我有很多其他带有外键的表,我发现很难通过在表创建中指定主键来实现创建......
    猜你喜欢
    • 2018-07-25
    • 2021-10-23
    • 2012-08-16
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多