Как обновить или изменить значение автоинкрементного столбца в Mysql - PullRequest
2 голосов
/ 14 мая 2019

У меня есть таблица eav_attribute со следующей структурой:

enter image description here

Я по ошибке удалил одну запись из этой таблицы с колонкой идентификатора атрибута автоматического приращениясо значением 961.

Теперь я снова хочу этот столбец с тем же значением идентификатора атрибута.

Но когда я вставляю этот столбец, он добавляется со значением автоинкремента, т.е. около 1500.

Я хочу добавить новый столбец с идентификатором атрибута 961

Я попытался изменить значение AUTO_INCREMENT на 961 перед добавлением столбца.

ALTER TABLE eav_attribute AUTO_INCREMENT = 961;

Но это не работает.Пожалуйста, предоставьте любое предложение.

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете переопределить столбец автоинкремента.Например,

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)

Я настоятельно рекомендую вам тщательно проверить это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...