我正在尝试恢复数据库以进行回归测试,但是auto_increment值未正确重置。
我可以在运行mysqlimport之前截断所有表,但这要慢得多。
演示我的问题...
使用MySQL 5.6.39:
CREATE DATABASE mydb;
USE mydb;
CREATE TABLE `mytable` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`text` VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
INSERT INTO mytable (text) values ("one");
INSERT INTO mytable (text) values ("two");
此时,表应如下所示:
|---------------------|------------------|
| id | text |
|---------------------|------------------|
| 1 | one |
|---------------------|------------------|
| 2 | two |
|---------------------|------------------|
使用以下命令创建一个名为mytable.txt
的文本文件:
1, garbagetext
在mytable.txt
所在的文件夹中打开cmd.exe:
mysqlimport --host=%myhost% --user=%myuser% --password=%mypassword% --delete --fields-terminated-by=, --lines-terminated-by="\r\n" --local %mydatabase% mytable.txt
然后将其输入数据库:
INSERT INTO mytable (text) values ("ID should be 2");
结果表将是:
|---------------------|------------------|
| id | text |
|---------------------|------------------|
| 1 | garbagetext |
|---------------------|------------------|
| 3 | ID should be 2 |
|---------------------|------------------|
答案 0 :(得分:0)
您可以使用
ALTER TABLE mytable AUTO_INCREMENT =值