我需要从数据库A中的表中导出数据,然后将其导入到数据库B中的结构相同的表中。这需要通过phpMyAdmin完成。问题在于:无论我为导出选择何种格式(CSV或SQL),都会导出所有列(包括自动递增的ID字段)。因为数据库B中的表中已有数据,所以我无法使用新记录导入ID字段 - 我需要它来导入记录并为记录分配新的自动递增值。我需要在导出(能够选择要导出的列)或导入(告诉它忽略文件中的ID列)中使用哪些设置?
或者我应该只导出为CSV,然后在Excel中打开并删除ID列?有没有办法告诉phpMyAdmin它应该为导入的记录生成新的自动递增ID,而不告诉我导入文件中的列数不正确?
编辑:澄清一下,我只导出数据,而不是结构。
答案 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)
另一种方法是