可用版本: Dev (3.21) | 最新版本 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

Schema: NULL 列

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

在大多数 RDBMS 中,任何列的默认可空性都是 NULL,即使 NOT NULL 通常是一个更合理的默认值。 只要您知道您的数据不应该包含 NULL 值,那么请添加显式的 NOT NULL 约束。 这有以下好处

  • 数据完整性:减少一个需要担心的数据不正确的情况。
  • 文档: 即使您的客户端应用程序可能确保您永远不会在列中获得 NULL 值,但最好还是通过约束正式传达这一事实。
  • 性能: 由于 NULL 是一个不可能的值,因此可以应用很多原本无法应用的优化。

例如

CREATE TABLE customer (
  -- [...]
  phone   TEXT,          -- Here, the default of being nullable applies (in most RDBMS), but should it?
  address TEXT NULL,     -- The address might optional, you can mark it as such, explicitly, in many RDBMS
  email   TEXT NOT NULL  -- Every customer needs an email, this isn't an optional field
);

当一个值是可选的时,此规则显然不适用,在这种情况下,NULL 可能是理想的值。

反馈

您对此页面有任何反馈吗? 我们很乐意听到!

The jOOQ Logo