我正在尝试使用“导入”功能从MS Excel 2007工作表中将数据插入到我的数据库表中。这里的挑战是我的db表有它的主键auto_incremented。这基本上意味着在excel表中,出于实际原因,不能存在作为主键数据的列,因为这会使编辑者手动保持输入数据变得繁琐[表的excel表可以添加多个因此,保留主键列中最后一个数字的标签并不是一个好主意。
这就是挑战所在。导入函数拒绝将信息插入到特定的表中,而是在数据库中创建一个新表并在那里输入信息。为了解决这个问题,第二个策略是使用一个执行周期性的触发器或存储过程[我不关心何时/如何执行它的语义]:
INSERT INTO requiredDbColumn
SELECT *
来自excelSheetTable
但是,这不会真正起作用,因为excelSheetTable和requiredDbColumn的值/列不匹配,因为excelSheetTable只有从上传的excel表创建的列数(n-1)与具有n的requiredDbColumn列数,附加列是主键列。
我已将主键设置为自动增量,因此我不确定为什么INSERT INTO,SELECT指出列数/值计数不匹配。
这是一个普遍的挑战,任何人都有解决方案吗?
谢谢!
答案 0 :(得分:0)
当我执行INSERT时,我通常会为新插入的行的所有字段赋予“值”。我的插入也会自动自动递增主键字段。
以下是我的一个INSERT命令的摘录:
INSERT INTO Security.Memberships VALUES (185790, '1461459','asdf',NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL)
也许您需要一个更完整构造的INSERT命令?