如何在MySQL中更新或更改自动增量列值

时间:2019-05-14 07:06:42

标签: mysql sql database magento2 auto-increment

我有一个表eav_attribute,该表具有以下结构

enter image description here

我错误地从此表中删除了一条记录,该记录的自动增量属性id列的值为961。

现在,我再次希望该列具有相同的属性ID值。

但是当我插入该列时,它会添加自动增量值,即1500左右。

我想添加属性ID为961的新栏目

在添加列之前,我尝试将AUTO_INCREMENT设置为961。

ALTER TABLE eav_attribute AUTO_INCREMENT = 961;

但是它不起作用。请提供任何建议。

1 个答案:

答案 0 :(得分:0)

您可以覆盖自动增量列。例如

MariaDB [sandbox]> drop table if exists t;
Query OK, 0 rows affected (0.14 sec)

MariaDB [sandbox]> create table t (id int auto_increment primary key,val varchar(1));
Query OK, 0 rows affected (0.27 sec)

MariaDB [sandbox]> insert into t (val) values
    -> ('a'),('b'),('C');
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

MariaDB [sandbox]>
MariaDB [sandbox]> select * from t;
+----+------+
| id | val  |
+----+------+
|  1 | a    |
|  2 | b    |
|  3 | C    |
+----+------+
3 rows in set (0.00 sec)

MariaDB [sandbox]>
MariaDB [sandbox]> delete from t where val = 'b';
Query OK, 1 row affected (0.03 sec)

MariaDB [sandbox]>
MariaDB [sandbox]> select * from t;
+----+------+
| id | val  |
+----+------+
|  1 | a    |
|  3 | C    |
+----+------+
2 rows in set (0.00 sec)

MariaDB [sandbox]> insert into t values (2,'b');
Query OK, 1 row affected (0.02 sec)

MariaDB [sandbox]> select * from t;
+----+------+
| id | val  |
+----+------+
|  1 | a    |
|  2 | b    |
|  3 | C    |
+----+------+
3 rows in set (0.00 sec)

MariaDB [sandbox]> show create table t;
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                             |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `val` varchar(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

强烈建议您对此进行彻底的测试...