主键和唯一索引的操作

添加主键元素

ALTER TABLE tbl_name
ADD PRIMARY KEY (字段名称);
CREATE TABLE user5(
    id INT UNSIGNED,
    username VARCHAR(20) NOT NULL
);

 

数据库MYSQL学习总结12—主键和唯一索引的操作

此时可以看到id的主键是空,接下来就为id添加主键

ALTER TABLE user5
ADD PRIMARY KEY(id);

数据库MYSQL学习总结12—主键和唯一索引的操作

删除主键元素(无须写字段,因为一个表中只有一个KEY)

ALTER TABLE tbl_name
DROP PRIMARY KEY;

接下来进行删除主键

ALTER TABLE user5
DROP PRIMARY KEY;

数据库MYSQL学习总结12—主键和唯一索引的操作

 

 有一种特殊的情况需要注意:

CREATE TABLE user6(
    id INT UNSIGNED AUTO_INCREMENT KEY,
    name VARCHAR(20) NOT NULL
);

数据库MYSQL学习总结12—主键和唯一索引的操作

ALTER TABLE user6
DROP PRIMARY KEY;

 

数据库MYSQL学习总结12—主键和唯一索引的操作

此时会发生报错,原因是id内有AUTO_INCREMENT这个属性,无法直接删除PRIMARY KEY属性。

将id的AUTO_INCREMENT属性删除

ALTER TABLE user6
MODIFY id INT UNSIGNED;

 

数据库MYSQL学习总结12—主键和唯一索引的操作

 

ALTER TABLE user6
DROP PRIMARY KEY;

数据库MYSQL学习总结12—主键和唯一索引的操作

这样就达到了删除主键的效果。 

--------------------------------------------------------------------------

添加唯一和删除唯一

ALTER TABLE tbl_name
ADD UNIQUE KEY|INDEX index_name (字段名称);
ALTER TABLE tbl_name
DROP index_name;

测试添加和删除唯一

CREATE TABLE user7(
    id INT UNSIGNED AUTO_INCREMENT KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password CHAR(32) NOT NULL,
    email VARCHAR(50) NOT NULL UNIQUE
);

数据库MYSQL学习总结12—主键和唯一索引的操作

删除唯一索引 username和eamil的索引

ALTER TABLE user7
DROP INDEX username;

 

数据库MYSQL学习总结12—主键和唯一索引的操作

 

ALTER TABLE user7
DROP INDEX email;

数据库MYSQL学习总结12—主键和唯一索引的操作

添加唯一索引(带编号)

ALTER TABLE user7
ADD UNIQUE KEY(username);

 

数据库MYSQL学习总结12—主键和唯一索引的操作

ALTER TABLE user7
ADD UNIQUE INDEX un_email(email);

 

数据库MYSQL学习总结12—主键和唯一索引的操作

 

数据库MYSQL学习总结12—主键和唯一索引的操作

 可以通过un_email 来删除UNIQUE

相关文章:

  • 2021-11-30
  • 2021-12-27
  • 2021-11-30
  • 2021-06-26
  • 2021-09-15
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-19
  • 2021-05-20
  • 2022-02-24
  • 2021-12-25
相关资源
相似解决方案