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

时间:2010-09-30 19:17:59

标签: import phpmyadmin

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

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

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

3 个答案:

答案 0 :(得分:7)

Excel是一个删除列的选项,此时可能是最快的。

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

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

答案 1 :(得分:4)

原始问题已经过去好几年了,但这仍然是Google搜索中的首选,所以我会评论对我有用的内容:

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

但是如果我保留Id列但是在excel中将所有Id值更改为NULL(只是在单元格中键入NULL),那么当我导入它时,id auto-increment会填充连续数字的新记录(大概是从最高现有记录Id +1)开始。

我使用的是PHPMyAdmin 4.7.0

答案 2 :(得分:0)

另一种方法是

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