0

我正在寻找一种可以复制数据库中所有行的方法,我尝试将其导出然后导入,但出现重复键错误。

原因纯粹是出于测试目的,我只想在其中加载一些虚拟数据来测试我所拥有的系统。

有没有直接的说法?或者有没有办法导出除 ID 之外的所有数据(或将 ID 更改为MAX(ID) + 1or AUTO INCREMENT)?

4

3 回答 3

2

放置 1 条记录,然后运行:

insert into mytable select * from mytable

10倍。这将为您提供 1024 条记录。继续直到满意为止。

于 2013-07-01T15:11:34.697 回答
2

你可以试试这个:

INSERT INTO your_table_name(parent_id,priority,text,shortname,weighting,g_or_a,
     dept,ksf,day_start,day_end,date_start,date_end,depends_on,is_question,budget,
     ccode,responsible,accountable,consulted,informed)
(SELECT parent_id,priority,text,shortname,weighting,g_or_a,dept,ksf,
    day_start,day_end,date_start,date_end,depends_on,is_question,budget,ccode,
    responsible,accountable,consulted,informed FROM your_table_name);

首先,在表中插入一行'your_table_name'。替换your_table_name为上面代码中的实际表名并重复执行代码,直到它满足所需的行号。我认为它应该工作。

于 2013-07-01T15:38:14.133 回答
0

您可以使用 anINSERT并且值将是 a SELECT,只是不要选择主键并且不要在插入字段中定义它。

想象一个有 3 个字段的表,the_pk, field_1, field_2

就像是

INSERT INTO the_table(field_1, field_2) (SELECT field_1, field_2 FROM the_table)
于 2013-07-01T15:12:11.057 回答