【发布时间】:2014-09-20 08:29:17
【问题描述】:
使用 Django,我经常需要向我们的 PostgreSQL 数据库添加新字段。这些字段通常有一个初始值,并且它们必须设置为 NOT NULL。我的程序包括三个步骤:
1) 添加字段并设置初始值:
ALTER TABLE my_table ADD COLUMN my_field boolean;
UPDATE my_table SET my_field = FALSE;
2) 设置非空:
ALTER TABLE my_table ALTER COLUMN my_field SET NOT NULL;
三个查询不能同时运行,因为这会导致 PostgreSQL 错误。
执行此任务最有效的方法是什么?我想在单个查询中执行此操作 - 并一次添加多个字段。类似的东西:
ALTER TABLE my_table ADD COLUMN my_field boolean INITIAL FALSE SET NOT NULL, ADD COLUMN my_field2 boolean INITIAL FALSE SET NOT NULL;
【问题讨论】:
标签: sql postgresql ddl alter-table