17
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【MySQL】2番目の主キーにauto_incrementしたい

Posted at

そういえば、複数主キーの構成の時に2番目以降の主キーにauto_incrementしたいときってどうするんだっけー!?となってネットを調べたけど思うように当たらなかったので、残しておきます。

CREATE TABLE IF NOT EXISTS `mydb`.`table1` (
  `id` INT NOT NULL COMMENT '',
  `id2` INT NOT NULL AUTO_INCREMENT COMMENT '',
  PRIMARY KEY (`id2`, `id`)  COMMENT '')
ENGINE = InnoDB

idとid2の順番は変えたくないけど、id2にauto_incrementしたいという場合です。
例えば、
納品書がぺらっとあって、明細がずらーっと並ぶパターンです。

id:納品書番号
id2:明細番号

として、id2の明細番号を採番する場合です。
ただし、明細番号は納品書番号ごとに1から繰り返さなくてもいいから、一つの納品書番号で明細が複数持てればOKという感じです。

このとき、普通、

PRIMARY KEY (`id`, `id2`) 

と上から順に主キーを並べるけれど、

PRIMARY KEY (`id2`, `id`) 

とauto_incrementする主キーを最初に持って来ればOKです。

はー、スッキリ。

17
10
2

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
17
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?