从Excel工作表导入数据库表

时间:2012-02-19 22:48:49

标签: mysql sql excel phpmyadmin

我正在尝试使用“导入”功能从MS Excel 2007工作表中将数据插入到我的数据库表中。这里的挑战是我的db表有它的主键auto_incremented。这基本上意味着在excel表中,出于实际原因,不能存在作为主键数据的列,因为这会使编辑者手动保持输入数据变得繁琐[表的excel表可以添加多个因此,保留主键列中最后一个数字的标签并不是一个好主意。

这就是挑战所在。导入函数拒绝将信息插入到特定的表中,而是在数据库中创建一个新表并在那里输入信息。为了解决这个问题,第二个策略是使用一个执行周期性的触发器或存储过程[我不关心何时/如何执行它的语义]: INSERT INTO requiredDbColumn SELECT *
来自excelSheetTable

但是,这不会真正起作用,因为excelSheetTable和requiredDbColumn的值/列不匹配,因为excelSheetTable只有从上传的excel表创建的列数(n-1)与具有n的requiredDbColumn列数,附加列是主键列。

我已将主键设置为自动增量,因此我不确定为什么INSERT INTO,SELECT指出列数/值计数不匹配。

这是一个普遍的挑战,任何人都有解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

当我执行INSERT时,我通常会为新插入的行的所有字段赋予“值”。我的插入也会自动自动递增主键字段。

以下是我的一个INSERT命令的摘录:

INSERT INTO Security.Memberships VALUES (185790, '1461459','asdf',NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL)

也许您需要一个更完整构造的INSERT命令?