在mysqlimport的庇护下发生了什么-删除?未重置自动增量值

gywdnpxw  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(531)

我正在尝试为回归测试还原数据库,但是没有正确重置自动增量值。
我可以在运行mysqlimport之前截短所有表,但这要慢得多。
为了证明我的观点。。。
使用MySQL5.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

在与相同的文件夹中打开cmd.exe mytable.txt :

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  |
|---------------------|------------------|
7hiiyaii

7hiiyaii1#

你可以用
alter table mytable auto\u increment=值

相关问题