Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何限制一次插入到中的记录数_Mysql_Mysql5 - Fatal编程技术网

Mysql 如何限制一次插入到中的记录数

Mysql 如何限制一次插入到中的记录数,mysql,mysql5,Mysql,Mysql5,我想像这样插入我的数据库。但表中可能有200000多条记录。我想将插入拆分为10000个左右的组,如何仅在MySQL中有效地执行此操作 INSERT INTO `slugs` (`sku`, `tablename`) select `SKU`, 'tableA' from `tableA` WHERE `SKU` NOT IN (select `sku` from `slugs` where `tablename` = 'tableA'); 示例代码:在末尾添加一个限制10000,并运行它直到

我想像这样插入我的数据库。但表中可能有200000多条记录。我想将插入拆分为10000个左右的组,如何仅在MySQL中有效地执行此操作

INSERT INTO `slugs` (`sku`, `tablename`)
select `SKU`, 'tableA'
from `tableA`
WHERE `SKU` NOT IN
(select `sku` from `slugs` where `tablename` = 'tableA');

示例代码:

在末尾添加一个限制10000,并运行它直到插入的行数=0


如果不是一次性操作,您可以在循环过程中执行此操作。

在末尾添加
限制10000
,并运行它直到插入的行数=0

如果不是一次性的,您可以在循环过程中执行此操作。

尝试以下操作:

SET @rank=0;
select rank
, IF(MOD(rank,10000)=0,CONCAT(IF(MOD(rank,10000)=1,CONCAT("insert ignore into table values (""",NAME,""",""",SKU,""")"),CONCAT(",(""",NAME,""",""",SKU,""")")),";"),IF(MOD(rank,10000)=1,CONCAT("insert ignore into table values (""",NAME,""",""",SKU,""")"),CONCAT(",(""",NAME,""",""",SKU,""")"))) as insert_statement
from (
SELECT @rank:=@rank+1 AS rank,NAME,SKU
from tablea 
) der
试试这个:

SET @rank=0;
select rank
, IF(MOD(rank,10000)=0,CONCAT(IF(MOD(rank,10000)=1,CONCAT("insert ignore into table values (""",NAME,""",""",SKU,""")"),CONCAT(",(""",NAME,""",""",SKU,""")")),";"),IF(MOD(rank,10000)=1,CONCAT("insert ignore into table values (""",NAME,""",""",SKU,""")"),CONCAT(",(""",NAME,""",""",SKU,""")"))) as insert_statement
from (
SELECT @rank:=@rank+1 AS rank,NAME,SKU
from tablea 
) der

为什么要拆分插入内容?速度非常慢,有人告诉我,如果将插入内容拆分为多个事务,可能会加快速度。为什么要拆分插入内容?速度非常慢,有人告诉我,如果将插入内容拆分为多个事务,可能会加快速度。