PostgreSQL修改列类型报错:int转varchar语法错误求助
PostgreSQL中int类型列修改为varchar类型的正确方法
当然可以通过ALTER TABLE操作将int类型的列修改为varchar类型,你的报错是因为执行的SQL语句语法错误。
你写的错误语句:
alter table discount alter column discount drop integer
上述写法完全不符合PostgreSQL修改列类型的语法规范,drop integer是无效的语法。
正确的修改语句应该是:
ALTER TABLE discount ALTER COLUMN discount TYPE varchar(50);
注意事项
- int类型的值可以直接转换为varchar类型,这个修改不会有数据丢失风险;但如果反过来将varchar转int,需要确保列中所有值都是有效的整数,否则会触发报错。
- 如果该列上存在索引、约束或被其他数据库对象依赖,需要先处理这些依赖关系,再执行修改操作。
内容的提问来源于stack exchange,提问作者Mark Abraham Goldstein
相关产品推荐
相关产品推荐

