我使用以下代码从一个表直接复制到另一个表:
$ transfer = $ db-> exec(“INSERT INTO table2 SELECT * FROM table1 WHERE groupname ='$ gname'”);
然而,我遇到的问题是两个表的ID字段不一定匹配(两者都是自动递增),有时这可能意味着一个临时表ID#高于最终表。
我使用php,pdo和mysql。
有什么方法吗?
答案 0 :(得分:2)
明确说明您想要的列:
"INSERT INTO table2 (`col_1`,`col_2`) SELECT `col_1`, `col_2` FROM table1 WHERE groupname = '$gname'"
答案 1 :(得分:0)
"INSERT INTO final_table SELECT * FROM temp_table WHERE temp_table.groupname = '$gname'"
这里的问题在哪里?如果两者都是auto_increment,并且就像你说temp_table的id高于perm_table那么,你最终会得到正确的效果。
答案 2 :(得分:0)
您还应该知道MySQL会阻止对select表的插入: