将mysql中的数据从旧schema迁移到新schema

发布于 2024-08-24 04:44:24 字数 109 浏览 8 评论 0原文

我们最近改进了生产数据库的架构,更改了列名和索引等。我们还将存储引擎更改为 InnoDB 以利用事务和外键。

将旧模式中的数据导入新模式的最佳方法是什么?请记住,列名称已更改(包括主键)。

We have recently improved the schema of our production database, changing column names and indexes etc. We also changed the storage engine to InnoDB to make use of transactions and foreign keys.

What is the best way to import the data from the old schema into the new schema? Bare in mind that column names have changed (including primary keys).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

年华零落成诗 2024-08-31 04:44:24
  1. 就像您更改了列名称一样,您可以创建文件并导入。

    SELECT * FROM old-table INTO OUTFILE '/path/to/filename.txt' 字段以 ',' 结尾 可选地由 '"' 结尾 行以 '\n' 结尾
    

    然后你可以加载数据:

    将数据 INFILE '/path/to/filename.txt' 加载到表新表字段中,以 ',' 结尾,可选用 '"' 结尾,以 '\n' 结尾的行;
    

    参考文献:

  2. 否则,如果可能的话,以下将在列数范围内完成工作相同:

    插入新表,从旧表中选择*;

    如果列数不同,则:

    insert into new-table select col1,col2,... from old-table;

  1. As if you have changed the column names you may create out files and import.

    SELECT * FROM old-table INTO OUTFILE '/path/to/filename.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\n'
    

    and then you may do LOAD Data:

    LOAD DATA INFILE '/path/to/filename.txt' INTO TABLE new-table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\n';
    

    References:

  2. Otherwise if possible following will do the job as far as number of columns are same:

    insert into new-table select * from old-table;

    If number of columns are not same then:

    insert into new-table select col1,col2,... from old-table;

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文