修改数据库表中 Column(列)的数据类型,不同数据库语法略有差异,下面给你常见数据库的做法和注意事项。
VARCHAR(50) → VARCHAR(20))ALTER TABLE 表名
MODIFY COLUMN 列名 新数据类型;
✅ 示例:
ALTER TABLE user
MODIFY COLUMN age INT;
如果是 带长度或精度:
ALTER TABLE user
MODIFY COLUMN name VARCHAR(100);
ALTER TABLE 表名
CHANGE 旧列名 新列名 新数据类型;
示例:
ALTER TABLE user
CHANGE username user_name VARCHAR(50);
ALTER TABLE 表名
ALTER COLUMN 列名 TYPE 新数据类型;
✅ 示例:
ALTER TABLE user
ALTER COLUMN age TYPE BIGINT;
ALTER TABLE user
ALTER COLUMN price TYPE NUMERIC(10,2)
USING price::NUMERIC(10,2);
ALTER TABLE 表名
MODIFY 列名 新数据类型;
✅ 示例:
ALTER TABLE user
MODIFY age NUMBER(10);
⚠️ Oracle 要求列中数据必须能转换为新类型
ALTER TABLE 表名
ALTER COLUMN 列名 新数据类型;
✅ 示例:
ALTER TABLE user
ALTER COLUMN age BIGINT;
⚠️ 有默认值、约束时可能需要先删除
| 问题 | 说明 |
|---|---|
| 数据丢失 | 长度缩小、类型不兼容 |
| 索引失效 | 类型变化可能导致索引重建 |
| 锁表 | 大表修改时间长 |
| 默认值/约束 | 可能需重新定义 |
SELECT DISTINCT 列名 FROM 表名;
我可以给你 精确、可执行的 SQL ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。