日期:2014-05-16  浏览次数:20973 次

mysql使用insert into select时候遇到的bug

?

Mysql?version: 5.0.45,数据迁移的时候遇到的问题(EMS SQL Manager2007 for Mysql)。

?

描述如下:

?

两个库A、B,两张表:A.tbl1、B.tbl2

表结构如下:

?? ? ? A.tbl1: ?必须字段:id(PK),name;非必须字段gender

?? ? ? B.tbl2:必须字段:id(PK),name,status; 非必须字段gender

?? 其中,status字段default=0;

?

?

在EMS中将数据从A迁入B的时候,采用如下语句:

?

?? ? ? INSERT INTO B.tbl2 (id, name, gender) SELECT id,name,gender FROM A.tbl1;

?

执行上述语句的时候,返回执行成功的记录条数,就是查不出迁入的记录。也不报错!

?

????? 正确: INSERT INTO B.tbl2 (id, name, gender,status) SELECT id,name,gender,0 FROM A.tbl1;?? ?

?

?

?? ? ?TNND,尽然不报错!!!

?

?

?? ? 另外,正确执行迁入后,在EMS中还差不错结果,但是已经不能再继续插入,主键冲突。但是在Mysql Query Browser中就可以查询。EMS 的记录查询缓存机制有哪位仁兄能够赐教一二?

?

?