问题:
有没有一种postgres查询可以向现有表中添加新列,并自动为该表的所有行填充某个值,例如"A1"
,只需在创建列时执行一次,以便我仍然可以将该列的默认值设置为另一个值,例如"B2"
?
为了明确起见,我想要的是这样的:
给定my_table
:
name | work
------------------------
bob | fireman
carl | teacher
alice | policeman
我的查询
ALTER TABLE my_table
ADD COLUMN description varchar(100)
DEFAULT "B2"
COMMAND_I_D_WISH_TO_KNOW "A1";
将 my_table
更改为
name | work | description
-------------------------------------
bob | fireman | "A1"
carl | teacher | "A1"
alice | policeman | "A1"
这样,如果我之后运行查询
INSERT INTO my_table(name, work)
VALUES karen, developer;
my_tables
变成
name | work | description
-------------------------------------
bob | fireman | "A1"
carl | teacher | "A1"
alice | policeman | "A1"
karen | developer | "B2"
ALTER COLUMN description DROP DEFAULT;
替换行ALTER COLUMN description SET DEFAULT 'B2';
时它就不能工作。要删除默认值,只有ALTER COLUMN description SET DEFAULT NULL
可以使用。 - Tms91