MySql -- primary key主键约束

4、primary key主键约束

在一张表中:

1) 主键约束是 NOT NULL、UNIQUE唯一的记录。

2) 主键约束必须是唯一的值。

3) 主键约束列不能包含 NULL 值。

注意:每个表都应该有一个主键,并且每个表只能有一个主键。

-- 我们创建一张表
CREATE TABLE `test`.`info2`(  
  `id` INT(11) NOT NULL,
  `idCard` VARCHAR(18) NOT NULL, 
  `mobile` VARCHAR(11)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_estonian_ci;

 
添加主键约束、

-- 直接使用 PRIMARY KEY (`id`),就可以为 id 字段添加主键约束
CREATE TABLE `test`.`info2`(  
  `id` INT(11) NOT NULL,
  `idCard` VARCHAR(18) NOT NULL, 
  `mobile` VARCHAR(11),
  PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_estonian_ci;

-- 如果已经存在表,可以使用sql语句添加。
ALTER TABLE `info2` ADD PRIMARY KEY (`id`);

-- 主键约束可以使用多个字段组成
ALTER TABLE `info2` ADD PRIMARY KEY (`id`,`idCard`);

结果:
FIELD   TYPE              COLLATION         NULL    KEY     DEFAULT  Extra           PRIVILEGES                       COMMENT  
------  ----------------  ----------------  ------  ------  -------  --------------  -------------------------------  ---------
id      INT(11) UNSIGNED  (NULL)            NO      PRI     (NULL)   AUTO_INCREMENT  SELECT,INSERT,UPDATE,REFERENCES           
idCard  VARCHAR(18)       utf8_estonian_ci  NO      PRI     (NULL)                   SELECT,INSERT,UPDATE,REFERENCES           
mobile  VARCHAR(11)       utf8_estonian_ci  YES             (NULL)                   SELECT,INSERT,UPDATE,REFERENCES    

-- 如果已经存在约束的,可以使用下面的语句进行修改
-- 操作思路为先删除原来的,再添加新的
ALTER TABLE `info2` DROP PRIMARY KEY, ADD PRIMARY KEY (`id`);

 

移除主键约束:

-- 移除主键的方法较为简单,直接使用 DROP PRIMARY KEY 就可以把全部的主键约束移除
ALTER TABLE `info2` DROP PRIMARY KEY;

 

posted @ 2017-07-31 16:26  喵喵扑  阅读(1394)  评论(0编辑  收藏  举报