【问题标题】:SQL: How to add a NULL value into the table and bypass the constraint check? [duplicate]SQL:如何在表中添加 NULL 值并绕过约束检查? [复制]
【发布时间】:2015-06-22 07:23:13
【问题描述】:

我有一张桌子

CREATE TABLE user (
  user_id   INT,
  user_name VARCHAR(100),
  CONSTRAINT pk_user_id PRIMARY KEY (user_id)
);

如何绕过约束并添加具有NULL id 的新用户?

INSERT INTO user (user_id, user_name) VALUES (NULL, 'John');

这可能吗?也许有一些黑客或什么的。

【问题讨论】:

  • 你为什么想要一个可以绕过的约束?
  • 我刚学SQL,想知道一些相关的技巧。
  • 删除primary key 约束。如果该列可以采用NULL 值,则它不是主键。
  • 否,因为主键不能有 NULL 值。
  • 事实上,如果你能做到这一点,那将是一个错误。 PostgreSQL 依赖 计划查询时NOT NULL 列中不能有空值;它还使用UNIQUE 列实际上是唯一的知识。你为什么要这样做呢?你想用这个来达到什么目的?

标签: sql postgresql


【解决方案1】:

如果您想在唯一的列中使用空值,请使用唯一索引而不是主键。

它将允许您在其中存储任意数量的带有 null user_id 的行(只是因为 null null)。所以要小心。

干杯。

【讨论】:

    【解决方案2】:

    你不能,表定义为列出的。

    您无法更改主键不能接受 NULL 作为值的事实,但您可以更改表并使该字段不是主键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 2015-09-25
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多