Technology Exchange
免费咨询热线
400-090-9964
5.6.5. 更改列的默认值
要为一个列设置一个新默认值,使用命令:
ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77;
注意这不会影响任何表中已经存在的行,它只是为未来的INSERT命令改变了默认值。
要移除任何默认值,使用:
ALTER TABLE products ALTER COLUMN price DROP DEFAULT;
这等同于将默认值设置为空值。相应的,试图删除一个未被定义的默认值并不会引发错误,因为默认值已经被隐式地设置为空值。
5.6.6. 修改列的数据类型
为了将一个列转换为一种不同的数据类型,使用如下命令:
ALTER TABLE products ALTER COLUMN price TYPE numeric(10,2);
只有当列中的每一个项都能通过一个隐式造型转换为新的类型时该操作才能成功。如果需要一种更复杂的转换,应该加上一个USING子句来指定应该如何把旧值转换为新值。
PostgreSQL将尝试把列的默认值转换为新类型,其他涉及到该列的任何约束也是一样。但是这些转换可能失败或者产生奇特的结果。因此最好在修改类型之前先删除该列上所有的约束,然后在修改完类型后重新加上相应修改过的约束。
5.6.7. 重命名列
要重命名一个列:
ALTER TABLE products RENAME COLUMN product_no TO product_number;
5.6.8. 重命名表
要重命名一个表:
ALTER TABLE products RENAME TO items;