【问题标题】:How to check if sequence exists in Fluent Migrator如何检查 Fluent Migrator 中是否存在序列
【发布时间】:2019-05-03 11:39:29
【问题描述】:

有没有办法在Fluent Migrator中创建之前检查序列是否存在?

这是我的代码:

IfDatabase("Oracle").Create.Sequence("SEQ_TEST").MaxValue(1).MaxValue(99999).StartWith(1).IncrementBy(2);

错误:

ORA-00955:名称已被现有对象提示使用

我可以使用此代码检查表格:

Schema.Table("TableTest").Exists()

但我不知道如何检查序列,有什么办法吗? 任何帮助表示赞赏!

【问题讨论】:

    标签: c# .net oracle fluent-migrator


    【解决方案1】:

    SEQUENCE是oracle的保留字,可能有问题。

    【讨论】:

    • 我用的词是一个例子,我编辑了我的问题
    【解决方案2】:

    我使用 SQL 命令解决了我的问题

                Execute.Sql(@"
                    DECLARE
                      VAR_SEQUENCE_EXIST VARCHAR(1);
                    BEGIN
    
                      SELECT COUNT(1)
                        INTO VAR_SEQUENCE_EXIST
                        FROM USER_SEQUENCES
                       WHERE SEQUENCE_NAME = 'SEQ_TEST';
    
                      IF VAR_SEQUENCE_EXIST = 0 THEN       
                        -- Create sequence 
                        EXECUTE IMMEDIATE 'create sequence SEQ_TEST
                                            minvalue 1
                                            maxvalue 9999999999
                                            start with 1
                                            increment by 1
                                            nocache';
                      END IF;
                    END;");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-13
      • 2012-06-16
      • 2014-09-12
      • 1970-01-01
      • 2016-01-28
      • 2012-08-08
      • 2017-01-01
      相关资源
      最近更新 更多