我们的开发人员经常忘记在向现有表添加列时指定允许空值。如果在使用Alter Table命令添加列
时未包含Null,则MySQL默认不允许空值有没有办法配置MySQL以便新列允许空值,除非alter table命令明确包含Not Null?
我们使用PHPMyAdmin来改变表,以便通过PHPMyAdmin使所有新添加的字段允许空值的方法可以工作。
答案 0 :(得分:2)
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)
答案 1 :(得分:0)
您可以在创建新列时指定DEFAULT NULL,如:
ALTER TABLE table
ADD COLUMN column VARCHAR(255) DEFAULT NULL;