当我在表中输入值时,主键被允许为null

时间:2017-03-13 04:00:56

标签: phpmyadmin null

我使用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

1 个答案:

答案 0 :(得分:0)

您的主键是text

主键是唯一标识表中每一行的列或一组列。在为表定义主键时,必须遵循以下规则:

主键必须包含唯一值。

如果主键由多列组成,则这些列中的值组合必须是唯一的。

主键列不能包含NULL值。这意味着您必须使用NOT NULL属性声明主键列。

如果不这样做,MySQL将隐式强制主键列为NOT NULL。 表只有一个主键。

因为MySQL使用整数运行得更快,所以主键列的数据类型应该是整数,例如INT,BIGINT。您可以选择较小的整数类型:TINYINT,SMALLINT等。