【发布时间】:2018-08-02 20:25:49
【问题描述】:
我正在尝试恢复数据库以进行回归测试,但 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 |
|---------------------|------------------|
【问题讨论】:
标签: mysql windows command-line-interface mysqlimport