MySQLでプライマリキーにauto incrementを追加する

MySQLでプライマリキーにauto incrementを追加する

idカラムにauto increment属性を追加するにはalter table文を使用します。

テーブル定義をdescで表示します。

mysql> desc tbl_customer;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | 0       |       |
| firstname | varchar(40) | NO   |     | NULL    |       |
| lastname  | varchar(40) | NO   |     | NULL    |       |
| age       | int(11)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.07 sec)

mysql> alter table tbl_customer CHANGE id id INT(11) AUTO_INCREMENT;
Query OK, 4 rows affected (0.82 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> desc tbl_customer;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| id        | int(11)     | NO   | PRI | NULL    | auto_increment |
| firstname | varchar(40) | NO   |     | NULL    |                |
| lastname  | varchar(40) | NO   |     | NULL    |                |
| age       | int(11)     | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)

mysql>

idをid int(11) auto_incrementに変更する、というイメージです。
逆にauto_incrementを解除したい場合は、以下のようにします。

alter table tbl_customer CHANGE id id INT(11);

コメント

タイトルとURLをコピーしました