不久前我创建了一个表并开始向其中添加数据。最近我添加了一个新列 ( address
)NOT NULL
作为新列的一部分。旧行(添加前)仍然为空,这在定义中创建了警告。但是,仍然允许带有新列的新行插入空值。
新列的添加前空值是否是允许的来源?如果是这样,有没有办法告诉 MySQL 不允许它,即使它以前是这样?
mysql> show create table my_table\G
*************************** 1. row ***************************
Table: my_table
Create Table: CREATE TABLE `my_table` (
`entry_id` int(11) NOT NULL auto_increment,
`address` varchar(512) NOT NULL,
`follow_up_to` int(11) default NULL,
PRIMARY KEY (`entry_id`),
KEY `follow_up_to` (`follow_up_to`),
CONSTRAINT `my_table_ibfk_1`
FOREIGN KEY (`follow_up_to`)
REFERENCES `my_table` (`entry_id`) ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=535 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
mysql>
Run Code Online (Sandbox Code Playgroud)