複合主キーをやめてユニークインデックス制約に移行する
2020/02/20 18:17:332020/02/20 19:03:41
uniqueindex.ts
@Index(["yuni", "kude", "attehosii", "kumiawase"], { unique: true })
export class Entity {...}
yuni
kude
attehosii
kumiawase
が同一のレコードが1つしか挿入できなくなります yuni
レコードの WHERE が早くなる挙動をしなかった @Column({ type: "int", unsigned: true, unique: true })
してたやつあったんですけど SELECT の速度測る前に今回やりたいこととは違うことに気づいてデータ飛ばしちゃったな migration.sql
ALTER TABLE `target_table` DROP PRIMARY KEY, ADD PRIMARY KEY (`id`); /* id のみ PRI */
ALTER TABLE `target_table` CREATE UNIQUE INDEX `IDX_f93ce13306a659c4d4465b58az` ON `target_table` (`yuni`, `kude`, `attehosii`, `kumiawase`); /* ユニークインデックスを貼る */
f93ce13306a659c4d4465b58az
は単純に TypeORM が生成したハッシュ値です、実際に適用する時は適当に手元で計算してください。 Generated from
複合主キーをやめてユニークインデックス制約に移行する