1

私が持っているとしましょう

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id          | int(11)      | YES  | UNI | NULL    |       |
| isbn        | varchar(20)  | NO   |     | NULL    |       |
| title       | varchar(200) | YES  |     | NULL    |       |
| author      | varchar(200) | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+

プライマリ キーは isbn でした (これを削除し、ID を追加しました (すぐにプライマリにします)。これを行う前に、すべての ID が一意であることを確認する必要があります (したがって、すべての値を更新して、 1;

私は次のことを試しましたが、何か提案が機能していませんか?

SET @bookid = 1; UPDATE books SET `id` = @bookid + 1;
4

2 に答える 2

2

これを使って:

ALTER TABLE books AUTO_INCREMENT=1;

または、まだid列を作成していない場合は、それも追加します

ALTER TABLE books ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    ADD INDEX (id);
于 2013-01-29T19:56:02.817 に答える
0

私はあなたがそのようなものを探していると思います

   SET @bookid = 1; 
   UPDATE books SET `id` =`id`+ @bookid ;

クエリは常にid=2を与えます

于 2013-01-29T20:01:22.367 に答える