转载:postgresql字段新增、删除、增删约束、字段和表重命名
- 新增字段
在t_test表里添加名为t1,类型为VARCHAR(10)的列
ALTER TABLE t_test ADD COLUMN t1 VARCHAR(10);
如果列是整型可以VARCHAR(10)换成integer
ALTER TABLE t_test ADD COLUMN t2 integer;
如果加上非空约束或者默认值
ALTER TABLE t_test ADD COLUMN t1 VARCHAR(10) not null;表示不能为空
ALTER TABLE t_test ADD COLUMN t1 VARCHAR(10) default '';表示默认值为字符串
- 删除字段
删除t_test表里t1字段
ALTER TABLE t_test DROP COLUMN t1;
如果t1字段被另外的表外键引用,直接执行删除会报错,需要使用cascade删除外键的依赖
ALTER TABLE t_test DROP COLUMN t1 cascade;
- 增加约束
ALTER TABLE t_test ADD CHECK (t2 > 0);表示t2得大于0
ALTER TABLE t_test ADD CONSTRAINT unique_test_key UNIQUE(t1);表示t1是唯一约束
ALTER TABLE t_test ALTER COLUMN t1 SET NOT NULL;表示给t1增加非空约束
注意在添加这些约束的时候,前提是这些表里已存在的数据也符合这些约束,否则会失败
- 删除约束
ALTER TABLE t_test DROP CONSTRAINT unique_test_key unique_test_key;表示删除t_test里名为unique_test_key的唯一约束
删除约束需要知道约束的名称,所以可以使用\d的命令查看有约束的名称,有点特殊的是非空的约束是没有名称的,但可以这样执行删除
ALTER TABLE t_test ALTER COLUMN t1 DROP CONSTRAINT NOT NULL;
- 修改、删除默认值
ALTER TABLE t_test ALTER COLUMN t2 SET DEFAUL 1;表示给t2列设置默认值
ALTER TABLE t_test ALTER COLUMN t2 DROP DEFAUL;
- 修改数据类型
ALTER TABLE t_test ALTER COLUMN t1 TYPE text;表示将t1的varchar类型转换成text类型
值得注意的是只有字段里的每个项都能隐式的转成新类型,这个操作才会成功
假如varchar(40)转成varchcar(10),如果有数据是长度是大于10的,那么转换就会失败
- 重命名字段
ALTER TABLE t_test RENAME COLUMN t2 TO t3;
- 重命名表
ALTER TABLE t_test RENAME TO t_test1;
作者:夏2018
链接:https://www.jianshu.com/p/e41a5f2914fc
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
标签:重命名,postgresql,COLUMN,t1,字段,test,TABLE,ALTER From: https://www.cnblogs.com/brithToSpring/p/17018029.html