私はこれをやろうとしています
- table という名前のブログのすべての行を取得します。
- それらを一時データベースにコピーします
- この一時テーブル レコードの言語フィールドを編集します
- ブログテーブルに挿入
そして、私は次のように試しています:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
しかし、当然のことながら、重複したキーエラーが発生します...
どうすれば防ぐことができますか?
-編集-
私は試した:
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
ALTER TABLE tmptable DROP id;
INSERT INTO blogs SELECT * FROM tmptable; dump database tmptable;
しかし、その後Column count doesn't match value count at row 1
-編集-
私はこれがうまくいくと信じています(そして、いくつのレコードが存在するかを知っているので、うまくいきました)
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + 1000;
INSERT INTO blogs SELECT * FROM tmptable;
しかし、どうすれば適切に行うことができますか?(主キー(id)の次の利用可能な自動インクリメント値を設定するだけです(PHP/alikeなし))
-編集-
多分このようなものですか?
CREATE TEMPORARY TABLE tmptable SELECT * FROM blogs WHERE lan = 2;
UPDATE tmptable SET lan = 1;
UPDATE tmptable SET id = id + (SELECT id FROM blogs ORDER BY id DESC LIMIT 1);
INSERT INTO blogs SELECT * FROM tmptable;