postgresql字段新增、删除、增删约束、字段和表重命名

23 篇文章 2 订阅

 

  • 新增字段
在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_
  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值