ERROR 1064 (HY000): ChildTable multi insert not provided

mysql>  insert into  user_info(user_id) values(1),(2),(3);
ERROR 1064 (HY000): ChildTable multi insert not provided


产生错误的原因是由于mycat中不支持一次对子表插入多条记录。


拆成两条SQL语句插入即可。
mysql> insert into user_info(user_id) values(2);insert into  user_info(user_id) values(3);
Query OK, 1 row affected (0.22 sec)
Query OK, 1 row affected (0.23 sec)




当使用mysqldump导出的sql向mycat中的ER表中的子表插入数据时,也会产生类似的错误。
因为默认mysqldump导出的语句默认是一次插入多条记录。


如果想让mysqldump导出的sql脚本能直接通过mycat插入到数据库中,建议使用以下参数:
mysqldump -uroot -p -h127.0.0.1 -P3316 -c  -t  --skip-add-drop-table  --extended-insert=false sakila actor>actor_extend_insert_false.sql


这时导出的SQL是单条插入而且还包含完整的字段名,我们可以用它来直接向mycat中ER表的子表插入数据,而不用特殊处理。
INSERT INTO `actor` (`actor_id`, `first_name`, `last_name`, `last_update`) VALUES (186,'JULIA','ZELLWEGER','2006-02-15 12:34:33');


-c, --complete-insert         插入时指定列名
-t, --no-create-info           不导出创建表的信息。Don't write table creation info. 
--add-drop-table               不添加删除表的信息
Add a DROP TABLE before each create.
 (Defaults to on; use --skip-add-drop-table to disable.)
-e, --extended-insert Use multiple-row INSERT syntax that include several VALUES lists. (Defaults to on; use --skip-extended-insert to disable.)







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值