如何将一个表的行附加到具有相同模式和数据类型的另一个表中

时间:2015-05-06 12:06:14

标签: mysql

数据库R中的一个数据库Q和表A中有一个表A.如何在表Q.A的末尾添加表R.A的行。

问题是这两个表都有相同的主键' id' (自动增量),所以如果表QA有10行(id 1到10),那么在将具有5行(id 1到5)的表RA的内容添加到QA之后,那么最后QA将有15行(id 1至15)

感谢。

1 个答案:

答案 0 :(得分:1)

如果两个表具有相同的结构,则可以采用以下过程将行从一个数据库表复制到另一个数据库表。

  1. R.A表格上创建一个临时表。
  2. 从临时表中删除主键列。
  3. 现在将临时表中的所有行复制到Q.A表,如下所示:

    INSERT INTO q.a SELECT 0, * FROM temporary_table

  4. 现在,删除临时表。

  5. 示例

    CREATE TABLE tmp SELECT * from R.A WHERE ...;
    ALTER TABLE tmp drop pk_id; -- drop auto increment field
    INSERT INTO Q.A SELECT 0, tmp.* FROM tmp;
    DROP TABLE tmp;
    

    这样,不会使用从其他数据库表复制的旧主键值,但在'0'语句中使用SELECT时会自动生成。

    确保用户对其他数据库表具有访问权限。

    另请参阅