是否有支持多个主键的数据库引擎?
不,我不是在询问单个主键中的多个字段。
我知道引擎必须复制每个其他主键的数据。对我来说没关系。
有没有人实现过该功能?
答案 0 :(得分:0)
一组唯一的列是超级键。不包含小/正确超级密钥的超级密钥是CK(候选密钥)。可以称一个CK"" PK(主键)。
谈论多个PK是没有意义的。也许当你说PK你的意思是CK或超级密钥(或者甚至某种SQL索引)但是你不明白你的意思。
SQL每个表只允许一个primary key
声明。但这意味着unique not null
。所以在关系术语中primary key
声明一个超级键,但不一定是CK或PK。 (尽管DBMS可能会以某种其他方式对PK进行不同的处理。)SQL foreign key
必须引用unique not null
(可能是primary key
)的列,但是以相对的术语来表示它是外来超级密钥,而不是FK(外键)。
(当SQL中涉及NULL时,其他关系术语也不适用,因为关系理论中没有NULL。)
答案 1 :(得分:-1)
在执行数据完整性方面,是的。您可以在关系数据库平台允许的范围内实现多种独特索引。
就字面上允许多个逻辑主键而言,没有。那么它就不是关系数据库了。