我们的开发人员在向现有表添加列时经常忘记指定允许空值。如果在使用 Alter Table 命令添加列时不包含 Null,MySQL 默认不允许空值
有没有办法配置 MySQL 以便新列允许空值,除非在 alter table 命令中明确包含 Not Null?
我们使用 PHPMyAdmin 来更改表,因此通过 PHPMyAdmin 使所有新添加的字段允许空值的方法将起作用。
我们的开发人员在向现有表添加列时经常忘记指定允许空值。如果在使用 Alter Table 命令添加列时不包含 Null,MySQL 默认不允许空值
有没有办法配置 MySQL 以便新列允许空值,除非在 alter table 命令中明确包含 Not Null?
我们使用 PHPMyAdmin 来更改表,因此通过 PHPMyAdmin 使所有新添加的字段允许空值的方法将起作用。
MySQL 的默认行为是alter table
在命令上默认允许空值。它可能与PHPMyAdmin有关。
mysql> desc foo;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| client_id | int(11) | YES | | NULL | |
| item_id | int(11) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)
mysql> alter table foo add (a char(1));
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc foo;
+-----------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| client_id | int(11) | YES | | NULL | |
| item_id | int(11) | YES | | NULL | |
| a | char(1) | YES | | NULL | |
+-----------+---------+------+-----+---------+-------+
4 rows in set (0.00 sec)
您可以在创建新列时指定 DEFAULT NULL,例如:
ALTER TABLE table
ADD COLUMN column VARCHAR(255) DEFAULT NULL;