sql - postgresql - 将 bool 列添加到表集默认值

标签 sql postgresql

将列添加到默认值为 false 的表中,这是正确的 postgresql 语法吗?

ALTER TABLE users
ADD "priv_user" BIT
ALTER priv_user SET DEFAULT '0'

谢谢!

最佳答案

ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN DEFAULT FALSE;

也可以直接指定NOT NULL

ALTER TABLE users
  ADD COLUMN "priv_user" BOOLEAN NOT NULL DEFAULT FALSE;

更新:以下仅适用于 postgresql 11 之前的版本。

正如 Craig 在填充表中提到的那样,将其拆分为多个步骤会更有效:

ALTER TABLE users ADD COLUMN priv_user BOOLEAN;
UPDATE users SET priv_user = 'f';
ALTER TABLE users ALTER COLUMN priv_user SET NOT NULL;
ALTER TABLE users ALTER COLUMN priv_user SET DEFAULT FALSE;

关于sql - postgresql - 将 bool 列添加到表集默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11938621/

相关文章:

mysql - 使用 MySQL 触发错误

sql - 如何快速批量更新postgres中的序列号

postgresql - 使错误的 PL/pgSQL 函数在创建过程中失败(不是在第一次调用时)

node.js - 如何在 postgresql 和 node js 中进行类似搜索

django - 切换到 PostgreSQL 加载数据转储失败

php - 初学者 PHP/SQL/AJAX - 当参数传递到服务器端脚本时查询不起作用

mysql - 多次准备语句时的性能问题

mysql - 从表中获取符合条件的多条记录

mysql - CASE 对于 mysql 中的多个更新实际上有用吗?

sql - 子查询返回多列 - 或近似值