テーブルの 1 つに (同じテーブルから) 挿入しようとしています。値の1つを変更する必要があるため、ここで回答したように選択して挿入しようとしました。自動インクリメント pk があり、新しく挿入された pk でカウントを続行したいと考えています。したがって、挿入すると、pk に 1 が追加されます。
INSERT INTO test.pp_publication_info
(id,
publication_fk,
template_fk,
allow_excel_upload)
SELECT
id, 55, template_fk, allow_excel_upload
FROM pp_publication_info where id = "1";
1
KEY PRIMARY のエントリが重複している 1062 エラーが表示されます。AIのせいでID列が+1されると思います。だから私は追加できるかどうかを確認しましたON DUPLICATE KEY UPDATE id
。残念ながら、クエリのどこにそれを入れても問題ありませんでした。
要するにINSERT
、AI機能を保持しながら選択して、このようにすることはできますか? もしそうなら、私はどこで間違っているのですか?
追加:私のテーブルのステートメントを作成します:
CREATE TABLE `pp_publication_info` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`publication_fk` int(10) unsigned NOT NULL,
`template_fk` int(10) unsigned DEFAULT NULL,
`allow_excel_upload` tinyint(1) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;