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

Mysql 如何将一个表的行附加到具有相同模式和数据类型的另一个表中,mysql,Mysql,一个数据库Q中有一个表a,数据库R中有一个表a。如何将表R.a的行添加到表Q.a的末尾 问题是这两个表都有相同的主键“id”(自动递增),所以如果表Q.A有10行(id 1到10),那么在将表R.A有5行(id 1到5)的内容添加到Q.A中之后,最后Q.A将有15行(id 1到15) 谢谢 如果两个表具有相同的结构,则可以采用以下步骤将行从一个数据库表复制到另一个数据库表 在R.a表上创建临时表 从临时表中删除主键列 现在将所有行从临时表复制到Q.A表,如下所示: 插入q.a,从临时表格中选择0

一个数据库Q中有一个表a,数据库R中有一个表a。如何将表R.a的行添加到表Q.a的末尾

问题是这两个表都有相同的主键“id”(自动递增),所以如果表Q.A有10行(id 1到10),那么在将表R.A有5行(id 1到5)的内容添加到Q.A中之后,最后Q.A将有15行(id 1到15)


谢谢

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

  • R.a
    表上创建临时表
  • 从临时表中删除主键列
  • 现在将所有行从临时表复制到
    Q.A
    表,如下所示:

    插入q.a,从临时表格中选择0*

  • 现在,放下临时桌子

  • 示例

    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;
    
    这样,从其他数据库表复制的旧主键值不会被使用,而是在
    SELECT
    语句中使用
    '0'
    时自动生成

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

    另请参阅

    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;
    

    相关内容:对于表Q.A中的每一行X,将X行添加到表R.A中