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

版权声明:. https://blog.csdn.net/WildestDeram/article/details/89322735

主键和唯一索引的操作

添加主键元素

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

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

ALTER TABLE user5
ADD PRIMARY KEY(id);

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

ALTER TABLE tbl_name
DROP PRIMARY KEY;

接下来进行删除主键

ALTER TABLE user5
DROP PRIMARY KEY;

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

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

ALTER TABLE user6
DROP PRIMARY KEY;

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

将id的AUTO_INCREMENT属性删除

ALTER TABLE user6
MODIFY id INT UNSIGNED;

ALTER TABLE user6
DROP PRIMARY KEY;

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

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

添加唯一和删除唯一

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
);

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

ALTER TABLE user7
DROP INDEX username;

ALTER TABLE user7
DROP INDEX email;

添加唯一索引(带编号)

ALTER TABLE user7
ADD UNIQUE KEY(username);

ALTER TABLE user7
ADD UNIQUE INDEX un_email(email);

 可以通过un_email 来删除UNIQUE

猜你喜欢

转载自blog.csdn.net/WildestDeram/article/details/89322735