首页 > 解决方案 > 如何在 Sybase 数据库中创建外键?

问题描述

我的数据库中有两个表应该与 PK 和 FK 连接。以下是表 1 的示例:

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

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

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

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

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

  Incorrect syntax near 'fk1'.

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

标签: foreign-keyssybasecreate-table

解决方案


您正在使用不受支持的语法。您必须使用CONSTRAINT子句。此外,类型不匹配,您应该使用与其他表相同的列类型。有效的代码是:

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

推荐阅读