4

我不确定构建我的问题的最佳方法是什么。

我有一个带有外键列的表。默认情况下,外键设置为NOT NULL,我现在想保持这种状态,因为也许这将是最终结果。但是现在可能存在不需要(并且具有)外键值的记录,我想以某种方式区分它们,以便尽可能清楚地表明这些记录与其他记录不同。

我试过了,但似乎我不能使用负数,因为负数bigint是我的 SQL Server 表中的外键值。我想这是非常标准的东西,所以在这种情况下除了制作外键之外最好的办法是什么NULL

4

2 回答 2

3

不知道为什么 HABO 没有给出答案,因为这几乎是你唯一的选择。

  1. 使其为 NULL
  2. 在引用的表中创建一行并将其设置为 TBD 或您喜欢的任何名称,并使用其中的 ID 而不是 NULL

如果您有不需要 FK 并且永远不需要的记录,那么您应该将该列设置为 NULL,否则使用临时值。

您不能使用负值,因为如果您有外键约束,您必须引用外部表中的某些内容。

于 2013-02-22T15:40:47.323 回答
1

外键约束强制您引用另一个表的现有 PK。

尚未提及的一种方法是暂时放弃约束:

ALTER TABLE YourTable
  DROP CONSTRAINT fk_something
于 2013-02-22T15:46:53.247 回答