如何使列允许null或唯一的序列

Jan*_* W. 3 sql sql-server

我已经看过一些网络搜索和对此的回复,但似乎它们都涉及到视图.

如何调整列以使其仅允许NULL或唯一值?

在我的情况下,有一个包含库存项目的表格,其中只有服务器项目具有序列号.其余的都是空的.我想对进入相同的连续剧实施某种控制.

此外,我无法重新设计架构,因为我正在为静态网站编写新的前端.

Ale*_*lli 6

在MySQL中,一个UNIQUE也可以为空的列允许任意数量的空值(在所有引擎中).因此,如果您使用的是MySQL,只需在感兴趣的列中添加UNIQUE约束即可.这种行为是SQL标准,PostgreSQL和SQLite也支持这种行为(显然Oracle UNIQUE仅用于单列约束,但我无法证实这一点).

但是,此SQL标准行为不一定适用于所有其他RDBMS引擎,例如SQL Server或DB2; 如果您指定需要支持的引擎,我们可能会提供更具体的建议.