MySQL
MySQL
ALTER TABLE users MODIFY COLUMN age INT NOT NULL DEFAULT 0;
ALTER TABLE users CHANGE COLUMN age user_age INT NOT NULL DEFAULT 0; -- 改名+改类型PostgreSQL
PostgreSQL
ALTER TABLE users ALTER COLUMN age SET NOT NULL;
ALTER TABLE users ALTER COLUMN age SET DEFAULT 0;
ALTER TABLE users ALTER COLUMN age TYPE integer USING age::integer; -- 显式转换| MySQL | MODIFY 必须写完整新定义(漏写的部分会按默认处理) |
|---|---|
| PostgreSQL | SET NOT NULL 需要先扫全表校验(无有效 CHECK 时) |
| 转换 | PG 改类型可用 USING 表达式处理脏数据 |