目前有在两个数据库分别有两张表,即A库中的表a和B库中的表b。A库是原始库,b库是中间库。
现在想把b表的数据插入a表中。是否用存储过程比较好?该怎么写?
使用了insert into select 语句 ,但是存在以下问题。
存在的问题:
1、a表两张表的字段不一致,a表中的部分字段b表中没有。如何在插入的时候给a表中的这些字段赋值?
2、可能存在主键重复的情况,如何判断,在发生该问题的时候能够自动忽略,避免运行报错中断。
目前有在两个数据库分别有两张表,即A库中的表a和B库中的表b。A库是原始库,b库是中间库。
现在想把b表的数据插入a表中。是否用存储过程比较好?该怎么写?
使用了insert into select 语句 ,但是存在以下问题。
存在的问题:
1、a表两张表的字段不一致,a表中的部分字段b表中没有。如何在插入的时候给a表中的这些字段赋值?
2、可能存在主键重复的情况,如何判断,在发生该问题的时候能够自动忽略,避免运行报错中断。
可以使用:
INSERT IGNORE INTO… SELECT … ON DUPLICATE KEY UPDATE …
1.明确地指定IGNORE,用于忽略会导致重复关键字错误的记录;
2.明确指定如果有,则根据主键更新;
3.没有的字段可以给空值,或者insert 的时候不给值;
参考自:MySQL INSERT … SELECT用法详解 http://www.data.5helpyou.com/article423.html