主キーとしてフィールド (id 、brand、model 、os) id を持つテーブルがあります
テーブルには最大 6000 行あります
ここで、id=4012 (既に存在する) の新しいフィールドを追加し、id>4012 の id++ をインクリメントしたい
最も愚かな方法:
テーブルのバックアップを作成
ID >= 4012 のエントリを削除
id = 4012 の新しいエントリを挿入
バックアップからテーブルを復元する
愚かですが、動作します))
より美しいソリューションを探しています Thx
テーブル構造:
CREATE TABLE IF NOT EXISTS `mobileslist` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`brand` text NOT NULL,
`model` text NOT NULL,
`os` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14823 ;
私は試します:
UPDATE mobileslist SET id = id + 1 WHERE id IN (SELECT id FROM mobileslist WHERE id >= 4822 ORDER BY id);
しかし、答えを得ました:
1093 - FROM 句で更新するターゲット テーブル 'mobileslist' を指定することはできません