【问题标题】:how can I ignore id column when importing into mySQL via phpMyAdmin?通过 phpMyAdmin 导入 mySQL 时如何忽略 id 列?
【发布时间】:2011-04-19 13:00:12
【问题描述】:

我需要从数据库 A 中的表中导出数据,然后将其导入到数据库 B 中结构相同的表中。这需要通过 phpMyAdmin 完成。这就是问题所在:无论我为导出选择什么格式(CSV 或 SQL),所有列(包括自动递增的 ID 字段)都会被导出。因为数据库 B 中的表中已经有数据,所以我无法使用新记录导入 ID 字段 - 我需要它来导入记录并将新的自动递增值分配给记录。我需要在导出(能够选择要导出的列)或导入(告诉它忽略文件中的 ID 列)中使用哪些设置?

或者我应该只导出为 CSV,然后在 Excel 中打开并删除 ID 列?有没有办法告诉 phpMyAdmin 它应该为正在导入的记录生成新的自动递增 ID,而不告诉我导入文件中的列数不正确?

编辑:澄清一下,我只导出数据,而不是结构。

【问题讨论】:

    标签: import phpmyadmin


    【解决方案1】:

    Excel 是删除列的一个选项,并且可能是目前最快的。

    但是,如果这些数据库位于同一台服务器上并且您可以访问,则只需访问 INSERT INTO databaseB.table (column_list) SELECT column_list FROM databaseA.table

    您也可以运行SELECT 语句来获取所需的列,然后导出结果。此链接应该在最新版本的 PHPMyAdmin 中可用。

    【讨论】:

    • 谢谢。我没有意识到我可以导出查询结果。这是一个很大的帮助。
    【解决方案2】:

    距离最初的问题已有好几年了,但这仍然在谷歌搜索中名列前茅,所以我会评论对我有用的东西:

    如果我删除 CSV 中的 Id 列,然后尝试导入,我会得到“第 1 行的 CSV 输入中的列数无效”。错误。

    但是,如果我保留 Id 列,但在 excel 中将所有 Id 值更改为 NULL(只需在单元格中输入 NULL),那么当我导入这个时,id 自动增量会用连续数字填充新记录(大概从现有的最高记录 ID +1 开始)。

    我正在使用 PHPMyAdmin 4.7.0

    【讨论】:

    • 这很有帮助,因为我正在导入具有 'id' 作为自动增量字段的新表!
    【解决方案3】:

    另一种方法是

    1. 转到该表的导入菜单
    2. 添加 CSV 文件(不带 ID 列)
    3. 在“格式”部分选择 CSV
    4. 在您选择文件格式的部分(由哪个字符分隔,哪个字符包含字段等)有一个名为列名的字段输入您包含的列的名称,用逗号分隔。

    【讨论】:

    • 最简单的兄弟荣誉
    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2021-11-30
    • 2012-10-07
    • 2012-07-01
    • 2015-12-10
    • 2013-07-21
    • 2011-11-19
    相关资源
    最近更新 更多