【问题标题】:how to add not null constraint for a column after dropping it if the table contains data如果表包含数据,如何在删除列后为列添加非空约束
【发布时间】:2022-01-01 04:17:06
【问题描述】:

我已经删除了 postgresql 中列的非空约束。现在我需要将非空约束添加回列。我的表中已经有数据了。我该怎么做?

此列已创建:列名 TEXT NOT NULL

【问题讨论】:

  • 在 ALTER TABLE 语句中使用 set not null 而不是 drop no null

标签: postgresql ddl


【解决方案1】:

如 Pg docs 中所述,您可以这样做

update table_name set columnname='fill null data' where columnname is null;
ALTER TABLE table_name ALTER COLUMN columnname SET NOT NULL;

ALTER TABLE table_name ALTER COLUMN columnname SET default ' ';

【讨论】:

  • 如果您的表列不包含任何空数据查询将起作用
  • 谢谢@arutar !!但是如果我在我的列中只添加空值,该命令会起作用吗??
  • 我的表中的特定列在给出更新语句后仅包含空值。那么将 NOT NULL 约束添加回列的方法是什么?
  • 添加默认值
  • 我把上面的例子改了
猜你喜欢
  • 2013-08-26
  • 1970-01-01
  • 2019-11-25
  • 2016-07-12
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
相关资源
最近更新 更多