LoginSignup
0
0

More than 3 years have passed since last update.

[MySQL]PRIMARY KEY制約とUNIQUE制約を変更

Posted at

主キーを変更する方法をよく忘れてしまうので、自分用のメモとして残します。

テスト用テーブル

CREATE TABLE employee(
 id int NOT NULL AUTO_INCREMENT
,code varchar(45) NOT NULL
,name varchar(45)
,age int
,PRIMARY KEY(id)
,UNIQUE(code)
);

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| code  | varchar(45) | NO   | UNI | NULL    |                |
| name  | varchar(45) | YES  |     | NULL    |                |
| age   | int(11)     | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

PRIMARY KEY制約とUNIQUE制約を変更

ALTER TABLE employee
 DROP PRIMARY KEY
,DROP INDEX code
,ADD PRIMARY KEY (code)
,ADD UNIQUE (id)
;

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | UNI | NULL    | auto_increment |
| code  | varchar(45) | NO   | PRI | NULL    |                |
| name  | varchar(45) | YES  |     | NULL    |                |
| age   | int(11)     | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0