我使用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
答案 0 :(得分:0)
您的主键是text
主键是唯一标识表中每一行的列或一组列。在为表定义主键时,必须遵循以下规则:
主键必须包含唯一值。
如果主键由多列组成,则这些列中的值组合必须是唯一的。
主键列不能包含NULL值。这意味着您必须使用NOT NULL属性声明主键列。
如果不这样做,MySQL将隐式强制主键列为NOT NULL。 表只有一个主键。
因为MySQL使用整数运行得更快,所以主键列的数据类型应该是整数,例如INT,BIGINT。您可以选择较小的整数类型:TINYINT,SMALLINT等。