0

我有一个包含 3 行的简单表:一个短文本、它自己的 ID 和另一个对象的 ID。

我想失去与另一个对象的关联。我想将其 ID 设置为 0(这样的对象不存在)。由于其他原因,我不能使用 NULL。

请帮我在 MySQL Workbench 中设置表或行以允许执行此类操作。

4

2 回答 2

3

您不能“强制”违反外键的值。这就是外键的全部意义所在。

你必须要么

  • 修复任何不喜欢NULL的值并将值设置为NULL(这就是它的用途,这是正确的方法),
  • 创建一个 ID 为 0 的虚拟对象,以便参考有效,或者
  • 完全删除外键。
于 2013-01-03T10:14:39.720 回答
0

不要使用诸如零之类的虚拟值来指示不存在的值。处理可选关联只有两种正确的方法。第一种是使用空值来指示给定实例中没有关联。第二个是修改你的模式以符合第六范式。

在第六范式中,将有一个额外的表,其中仅包含您的两个 id。在没有关联的情况下,不会有行。就这么简单。

更彻底地研究 Erlang。要么 Erlang 能够处理 NULLS,要么 Erlang 不能处理 SQL。不管你喜不喜欢,NULLS 是 SQL 的一部分。

于 2013-01-03T11:57:36.007 回答