1

写真情報を保存するための次のテーブルがあります。

CREATE TABLE foto (
id int(11) NOT NULL auto_increment,
id_galerie int(11) NOT NULL,
filename varchar(255) NOT NULL,
sort_nr int(11) NOT NULL default 1,
UNIQUE KEY (id_galerie, sort_nr),
PRIMARY KEY (id)
)

列sort_nrを自動インクリメントする必要がありますが、1 つのid_galerieに関してのみです。だから私はこの挿入クエリを試しました:

INSERT INTO foto (id_galerie, filename)
VALUES
(1, 'filename'),
(1, 'another filename'),
(1, 'anothername'),
(1, 'another value')
ON DUPLICATE KEY UPDATE sort_nr = sort_nr+1

しかし、エラーがスローされました (#1062 - キー「id_galerie」のエントリ「1-2」が重複しています)。キーが一意でない場合、 sort_nrを強制的に自動インクリメントするにはどうすればよいですか?

4

1 に答える 1