postgresql字段新增、删除、增删约束、字段和表重命名
转载: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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?