通过 phpMyAdmin 导入 mySQL 时如何忽略 id 列?

发布于 2024-09-25 18:36:49 字数 360 浏览 3 评论 0原文

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

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

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

I need to export data from a table in database A, then import it into an identically-structured table in database B. This needs to be done via phpMyAdmin. Here's the problem: no matter what format I choose for the export (CSV or SQL) ALL columns (including the auto-incremented ID field) get exported. Because there's already data in the table in database B, I can't import the ID field with the new records - I need it to import the records and assign new auto-incremented values to the records. What settings do I need to use in either the export (to be able to choose which columns to export) or the import (to tell it to ignore the ID column in the file)?

Or should I just export as CSV, then open in Excel and delete the ID column? Is there a way to tell phpMyAdmin that it should generate new auto-incremented IDs for the records being imported, without it telling me that there's an incorrect column count in the import file?

EDIT: to clarify, I'm exporting only data, not structure.

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

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

发布评论

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

评论(3

单身狗的梦 2024-10-02 18:36:49

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

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

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

Excel is an option to remove the column and probably the fastest at this point.

But if these databases are on the same server and you have access you can just to an INSERT INTO databaseB.table (column_list) SELECT column_list FROM databaseA.table.

You can also run the SELECT statement to just get the desired columns and then export the results. This link should be available in the recent versions of PHPMyAdmin.

黒涩兲箜 2024-10-02 18:36:49

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

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

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

我正在使用 PHPMyAdmin 4.7.0

It is several years since the original question, but this still came out top in a google search so I'll comment on what worked for me:

If I delete the Id column in my CSV and then try to import I get the 'Invalid column count in CSV input on line 1.' error.

But if I keep the Id column but change all of the Id values to NULL in excel (just typing NULL into the cell), then when I import this the id auto-increment fills in the new records with consecutive numbers (presumably starting with the highest existing record Id +1 ).

I'm using PHPMyAdmin 4.7.0

扬花落满肩 2024-10-02 18:36:49

另一种方法是

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

Another way is

  1. Go to the import menu for that table
  2. Add the CSV file (without an ID column)
  3. Pick CSV in the Format section
  4. In the section where you pick the format of the file (separated by which char, which char encloses fields, etc) there's a field called Column names Type the names of the columns you ARE including, separated by commas.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文