我正在寻找一种可以复制数据库中所有行的方法,我尝试将其导出然后导入,但出现重复键错误。
原因纯粹是出于测试目的,我只想在其中加载一些虚拟数据来测试我所拥有的系统。
有没有直接的说法?或者有没有办法导出除 ID 之外的所有数据(或将 ID 更改为MAX(ID) + 1
or AUTO INCREMENT
)?
我正在寻找一种可以复制数据库中所有行的方法,我尝试将其导出然后导入,但出现重复键错误。
原因纯粹是出于测试目的,我只想在其中加载一些虚拟数据来测试我所拥有的系统。
有没有直接的说法?或者有没有办法导出除 ID 之外的所有数据(或将 ID 更改为MAX(ID) + 1
or AUTO INCREMENT
)?
放置 1 条记录,然后运行:
insert into mytable select * from mytable
10倍。这将为您提供 1024 条记录。继续直到满意为止。
你可以试试这个:
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
为上面代码中的实际表名并重复执行代码,直到它满足所需的行号。我认为它应该工作。
您可以使用 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)