【问题标题】:FluentMigrator - Check if data/row existsFluentMigrator - 检查数据/行是否存在
【发布时间】:2019-08-19 21:00:10
【问题描述】:

我正在使用 FluentMigrator 将一个数据库模式迁移到另一个。我有一个案例,我想在添加新数据之前检查某些数据(特别是一行)是否存在。

if (!Schema.Table("MyTable").Something().Exists)
    Insert.IntoTable("MyTable").Row(new { Id = 100, Field="Value" });

如何先检查该行是否存在?

【问题讨论】:

    标签: fluent-migrator


    【解决方案1】:

    从 3.0 版开始,FluentMigrator 中没有内置功能可以插入不存在的行。 GitHub上有请求添加此功能:https://github.com/fluentmigrator/fluentmigrator/issues/640

    但是,您可以使用 Execute.Sql() 方法并编写自己的 SQL 查询,在插入之前检查该行是否存在,如下所示 Check if a row exists, otherwise insert

    Execute.Sql(@"
    begin tran
    
    if not exists (select * from MyTable with (updlock, rowlock, holdlock) where id='100' and Field='Value')
    begin
        insert into MyTable values (100, 'Value')
    end
    
    commit
    ");
    

    【讨论】:

    • 这正是我必须做的。谢谢!
    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2015-10-22
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多