【问题标题】:How to insert multiple items at once when not all of them match the constraints?当并非所有项目都匹配约束时,如何一次插入多个项目?
【发布时间】:2011-04-24 20:09:57
【问题描述】:

我正在使用InsertAllOnSubmit,但是当它失败时,因为一个项目不遵守约束,所以没有插入任何项目。

有没有办法插入所有有效的项目?

【问题讨论】:

    标签: .net linq-to-sql sqlite constraints bulkinsert


    【解决方案1】:

    通常的做法是首先不允许用户编组无效数据。这就是用户界面通过与数据库协同工作来完成的事情。例如,如果希望用户提供加利福尼亚州的城市名称,则用户界面应该

    • 实现选择列表(又名组合框) 仅包含城市名称 在加利福尼亚州,或
    • 让用户输入任何内容,检查到 查看输入的值是否为 加利福尼亚州的城市,并返回一个 如果不是,则提供信息性错误消息
    • 其他我现在想不起来的事情,因为我困了

    另一种常规方式是将每个“行”或“集”数据作为单独的事务提交。无效数据只会回滚它自己的事务,而不是整个批次。这会影响性能;将 1000 行插入为 1000 行的一个事务而不是每个 1000 行的事务几乎总是更快。

    【讨论】:

      【解决方案2】:

      我不得不使用INSERT OR IGNORE

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        • 2014-11-01
        相关资源
        最近更新 更多