如何在mysql现有表中增加自增列,从1000开始递增1

c9qzyr3d  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(921)

我有一个已经有数据的表。我想在表中添加新的列作为主键,主键的值应该从1000开始,并且应该是自动递增的。
我试着遵循sql命令

**

ALTER TABLE TABLE_NAME  AUTO_INCREMENT = 1000;
ALTER TABLE TABLE_NAME ADD COLUMN RowId  INT AUTO_INCREMENT NOT NULL PRIMARY KEY FIRST;

**

但它仍然显示新列由1的值组成。我希望第一张唱片应该从1000开始,然后继续。

3b6akqbq

3b6akqbq1#

根据手册(https://dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html)只需插入1000的值,就可以更改自动递增的数字
在自动递增列中插入任何其他值时,该列将被设置为该值,并且序列将被重置,以便下一个自动生成的值从最大的列值开始依次出现

fnx2tebb

fnx2tebb2#

你可能只想用一句话来表达。

+-------+---------+--------+---------------------+
| subid | clickid | status | datetime            |
+-------+---------+--------+---------------------+
|     1 |     123 | low    | 2018-07-24 20:20:44 |
|     2 |     123 | act    | 2018-07-24 21:20:44 |
|     3 |     231 | act    | 2018-07-25 20:20:44 |
|     4 |     231 | low    | 2018-07-25 21:20:44 |
|     5 |     789 | low    | 2018-07-26 20:20:44 |
|     6 |     789 | act    | 2018-07-26 21:20:44 |
+-------+---------+--------+---------------------+
6 rows in set (0.00 sec)

ALTER TABLE T ADD COLUMN RowId  INT AUTO_INCREMENT NOT NULL PRIMARY KEY FIRST,
AUTO_INCREMENT = 1000;

+-------+-------+---------+--------+---------------------+
| RowId | subid | clickid | status | datetime            |
+-------+-------+---------+--------+---------------------+
|  1000 |     1 |     123 | low    | 2018-07-24 20:20:44 |
|  1001 |     2 |     123 | act    | 2018-07-24 21:20:44 |
|  1002 |     3 |     231 | act    | 2018-07-25 20:20:44 |
|  1003 |     4 |     231 | low    | 2018-07-25 21:20:44 |
|  1004 |     5 |     789 | low    | 2018-07-26 20:20:44 |
|  1005 |     6 |     789 | act    | 2018-07-26 21:20:44 |
+-------+-------+---------+--------+---------------------+
6 rows in set (0.00 sec)

show create table t;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                                                                               |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (
  `RowId` int(11) NOT NULL AUTO_INCREMENT,
  `subid` int(11) DEFAULT NULL,
  `clickid` int(11) DEFAULT NULL,
  `status` varchar(3) DEFAULT NULL,
  `datetime` datetime DEFAULT NULL,
  PRIMARY KEY (`RowId`)
) ENGINE=InnoDB AUTO_INCREMENT=1006 DEFAULT CHARSET=latin1 |

相关问题