我使用phpmyadmin创建数据库,但是当我在表中输入值时,允许主键是null的,尽管不是这样创建的。为什么会发生这种情况?请参阅下面的phpmyadmin的创建表语句:
CREATE TABLE `subscriber` (
`first_name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`phone_number` varchar(8) NOT NULL,
`node_name` varchar(50) NOT NULL,
`node_number` int(5) NOT NULL,
`shelf` int(5) NOT NULL,
`card` int(5) NOT NULL,
`port` int(5) NOT NULL,
`ONT` int(5) NOT NULL,
`registration_id` int(5) NOT NULL,
`comment` text NOT NULL,
PRIMARY KEY (`phone_number`) )
ENGINE=InnoDB DEFAULT CHARSET=latin1
您的主要密钥是text
主键是列或一组列,可唯一标识表中的每一行。定义表的主键时,必须遵循以下规则:
主键必须包含唯一的值。
如果主要密钥由多列组成,则这些列中值的组合必须是唯一的。
主键列不能包含空值。这意味着您必须用"非null属性"声明主键列。
如果您不这样做,MySQL会迫使主密钥列隐含地为无效。表只有一个主键。
由于mySQL与整数使用更快,因此主键列的数据类型应为整数,例如,int,bigint.you可以选择较小的整数类型:tinyint,smallint,smallint等。