MODIFY 是否保留 MariaDB 中的其他列属性?
Does MODIFY retain other column attributes in MariaDB?
以 MariaDB 知识库中的这个例子为例:
CREATE TABLE t1 (
a INT UNSIGNED AUTO_INCREMENT PRIMARY_KEY,
b VARCHAR(20) NOT NULL UNIQUE
);
ALTER TABLE t1 MODIFY b VARCHAR(40);
- 这条语句之后
b
还会是NOT NULL
吗?
b
还会附加唯一性约束吗?
采用最新版本的 MariaDB。
经过自己的测试,我得出的结论是:
b
不会保留NOT NULL
属性;这被重置为允许空值的默认值。
- 唯一性约束仍然存在。
显然我也完全忽略了知识库解释这种行为的事实:https://mariadb.com/kb/en/alter-table/#modify-column
以 MariaDB 知识库中的这个例子为例:
CREATE TABLE t1 (
a INT UNSIGNED AUTO_INCREMENT PRIMARY_KEY,
b VARCHAR(20) NOT NULL UNIQUE
);
ALTER TABLE t1 MODIFY b VARCHAR(40);
- 这条语句之后
b
还会是NOT NULL
吗? b
还会附加唯一性约束吗?
采用最新版本的 MariaDB。
经过自己的测试,我得出的结论是:
b
不会保留NOT NULL
属性;这被重置为允许空值的默认值。- 唯一性约束仍然存在。
显然我也完全忽略了知识库解释这种行为的事实:https://mariadb.com/kb/en/alter-table/#modify-column