我的数据库中有两个表应该与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。当我在Sybase的DBeaver中运行上面的代码时,这是我得到的错误消息:
SQL Error [102] [37000]: Incorrect syntax near 'fk1'.
Incorrect syntax near 'fk1'.
如果有人可以告诉我我的代码在哪里破损,请告诉我。我不确定这是否与DBeaver相关或我的语法不正确。
答案 0 :(得分:1)
您正在使用unsupported syntax。您必须使用 CONSTRAINT 子句。同样类型也不匹配,您应该使用与其他表相同的列类型。有效的代码是:
CREATE TABLE table2(
RefID numeric(19,0),
Status bit,
Comments varchar(8000),
constraint fk1 foreign key (RefID) REFERENCES table1(RecID)
)