【问题标题】:How do I dump only results of one table in a database in MySQL and replicate to another remote empty table with the same structure?如何仅转储 MySQL 数据库中一个表的结果并复制到另一个具有相同结构的远程空表?
【发布时间】:2026-02-02 22:50:02
【问题描述】:

这是一个很长的句子,有人知道吗?

【问题讨论】:

    标签: mysql mysqldump mysqladmin


    【解决方案1】:

    创建dump

    mysqldump --user [username] --password=[password] --no-create-info [database name] [table name] > /tmp/dump.sql
    

    恢复:

    mysql --u [username] --password=[password] [database name] [table name] < /tmp/dump.sql
    

    【讨论】:

    • 还原中唯一明显的警告是外键关系。但我没有看到任何解决方案。
    • [table name] 在还原部分不是必需的。
    【解决方案2】:

    类似这样的事情:

    SELECT *
    INTO new_table_name [IN externaldatabase]
    FROM old_tablename
    WHERE 1=0
    

    我不确定这是否适用于 My SQL,但你明白了。

    这不会重复 PK、FK、索引、存储过程或其他任何内容。只是列和数据类型。

    W3Schools

    天啊

    我一定误解了你的问题。就寝时间已经快凌晨 3 点了。

    好的,所以可能有更好的方法来做到这一点,但这可以完成工作。

    SELECT  CONCAT('INSERT INTO (COL1, COL2) VALUES (',COL1,COL2,');');
    

    您需要为某些数据类型添加 '。

    SELECT  CONCAT('INSERT INTO (COL1, COL2) VALUES (',COL1,''' ''',COL2,');');
    

    获取输出并在远程数据库上运行。

    【讨论】:

    • new_table 在另一台机器上。所以我想我必须分两步完成。
    最近更新 更多