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 回答