其他功能
修改列定义时,字段类型一致的变更不报错(兼容Oracle)
原有状态
sqlCREATE TABLE test_tab(f1 VARCHAR(10)); ALTER TABLE test_tab MODIFY f1 VARCHAR(10); Error: [E16016] 字段F1的新定义与旧定义完全一致
当配置兼容模式为Oracle时(compatible_mode=oracle),错误16016级别设置为警告,不以错误方式返回客户端。
当前版本状态
sqlSET COMPATIBLE_MODE TO ORACLE; CREATE TABLE test_tab(f1 VARCHAR(10)); ALTER TABLE test_tab MODIFY f1 VARCHAR(10); Warnning: [E16016] 字段F1的新定义与旧定义完全一致
变更表对象定义的操作语法(兼容Oracle)
- 修改列支持使用MODIFY关键字,兼容原来的的ALTER COLUMN。
- 支持默认值的ON NULL功能。
示例:
sql
CREATE TABLE test_tab(a int);
--使用MODIFY修改字段
ALTER TABLE test_tab MODIFY a SMALLINT DEFAULT 1;
INSERT INTO test_tab VALUES(DEFAULT);
--使用ALTER COLUMN修改字段
ALTER TABLE test_tab ALTER COLUMN a INT DEFAULT ON NULL 10;
INSERT INTO test_tab VALUES(DEFAULT);
SELECT * FROM test_tab;
A |
------------------------------------------------------------------------------
1 |
10 |