如何在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)
)
我的数据库中有两个 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)
)