当我改变表添加列默认值
时,如何更新旧行的值type smallint NOT NULL DEFAULT 0
但旧行仍然为空,为什么无法自动更新为默认值?
答案 0 :(得分:3)
在事务中的alter table语句之前发出update语句:
update table set col = 0 where col is null
Alter table不会更新数据,因为它不是它的工作或责任;更新是更新的工作。 (我知道的唯一例外是当您更改列的类型时,在这种情况下,您可以根据需要使用using子句来转换数据。)