【问题标题】:Importing from an excel sheet into a database table从 Excel 工作表导入数据库表
【发布时间】:2012-02-19 22:48:49
【问题描述】:

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

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

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

我已将主键设置为自动递增,所以我不确定为什么 INSERT INTO, SELECT 会声明列计数/值计数不匹配。

这是一个普遍的挑战,有人对此有解决方案吗?

谢谢!

【问题讨论】:

    标签: mysql sql excel phpmyadmin


    【解决方案1】:

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

    这是我的一个 INSERT 命令的摘录:

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

    也许您需要更完整的 INSERT 命令?

    【讨论】:

    • 感谢 Jerry,但这是通过 Select * from other_table 命令提供值的插入位置
    猜你喜欢
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多