关闭

ERROR 1064 (HY000): ChildTable multi insert not provided

1686人阅读 评论(0) 收藏 举报
分类:
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.)







0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1757315次
    • 积分:21798
    • 等级:
    • 排名:第353名
    • 原创:482篇
    • 转载:6篇
    • 译文:6篇
    • 评论:99条