Sql插入为“插入块”方法

时间:2011-08-01 12:00:03

标签: php mysql oracle


任务:将数据从oracle插入mysql
为了更快地插入数据,我将插入数据作为“插入块”方法。

喜欢这样。(例如查询两个记录..(真实500))

INSERT INTO test_table
            (bill_balance, 
             prime_uid, 
             customer_id, 
             account_name, 
             phone, 
             street, 
             bill_dt, 
             account_no) 
VALUES      ('111', 
             '123456', 
             '1234-56789', 
             'My name is', 
             '20373359', 
             'Street name', 
             '1970-01-01 02:00:00', 
             '123456'), 
            ('2', 
             '123', 
             '123-123', 
             'TEST', 
             '', 
             'test 123', 
             '1970-01-01 02:00:00', 
             '123456789') 

我遇到了这个错误: MySQL服务器已经消失 我在php中设置了这个设置:

error_reporting(E_ALL);

ini_set("memory_limit", "512M"); 
ini_set("max_execution_time", 0);
set_time_limit(0);

ini_set('display_errors','1');
ini_set('interactive_timeout', 3600);
ini_set('wait_timeout', 3600);
ini_set('mysql.connect_timeout', 60);
ini_set('mysql.allow_persistent', true);

使用简单的插入,它可以工作!它不适用于块插入方法。

1 个答案:

答案 0 :(得分:2)

您可能超出了允许的数据包大小 将strlen($yourQuery)(+一些可行边际)的结果与
的结果进行比较 SHOW VARIABLES LIKE 'max_allowed_packet'

另见:http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_max_allowed_packet