如何在Sybase数据库中创建外键?

How to create foreign key in Sybase database?

我的数据库中有两个 table 应该与 PK 和 FK 相关联。这是 table 1 的示例:

RecID(numeric(19,0)) PK CLUSTERED
Name(varchar(100))
Description(varchar(5000))

然后我想创建第二个 table 将引用 table 1。这是我目前的代码示例:

CREATE TABLE table2(
    RefID bigint,
    Status bit,
    Comments varchar(8000),
    FOREIGN KEY fk1(RefID) REFERENCES table1(RecID)
)

RefID in table 2 应该是外键并引用 table 1 中的 RecID。当我 运行 上面的代码在 DBeaver for Sybase 中时,这里是错误消息我得到:

SQL Error [102] [37000]: Incorrect syntax near 'fk1'.

  Incorrect syntax near 'fk1'.

如果有人能告诉我我的代码在哪里出错,请告诉我。我不确定这是否与 DBeaver 相关或我的语法不正确。

您正在使用 unsupported syntax。您必须使用 CONSTRAINT 子句。此外,类型不匹配,您应该使用与其他 table 相同的列类型。有效的代码是:

CREATE TABLE table2(
    RefID numeric(19,0),
    Status bit,
    Comments varchar(8000),
    constraint fk1 foreign key (RefID) REFERENCES table1(RecID)
)