0

テーブルがあります:

id int(11) auto_increment
name varchar(255)

auto_increment は 1 です。次の行を挿入します。

INSERT INTO `projects` ( `id` , `name`) VALUES ('350',  'project one');

現在auto_incrementは 351 です。行を更新します。

UPDATE `projects` SET `id` = '351' WHERE `id` = 350 LIMIT 1 ;

auto_increment行を挿入しようとすると、エラーが発生します。

#1062 - Duplicate entry '351' for key 1 

changes ではなくINSERTauto_increment の変更を確認する方法。UPDATEauto_increment

私の目標は、行を更新してidより大きく設定することauto_incrementです。

どうやってするの?

4

1 に答える 1

1

まず、自動インクリメント値を設定しようとしているのはなぜですか? その仕事をさせてください(手がかり - それは自動です)。

したがって、最善の解決策は、行を挿入するときに、自動インクリメントに適切な値を選択させ、その値をその行の存続時間に対して不変にすることです。

auto_incrementそれ以外の場合は、テーブル定義からビットを削除して、適切なシステムを自分で実装してください。

于 2013-03-15T11:31:18.873 に答える