Как проверить, существует ли последовательность в Fluent Migrator - PullRequest
0 голосов
/ 03 мая 2019

Есть ли способ проверить, существует ли последовательность перед созданием в Fluent Migrator?

, вот мой код:

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

ошибка:

ORA-00955: имя уже используется существующими подсказками объектов

Я могу проверить таблицы, используя этот код:

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

Но я не знаю, как я могу проверить последовательности,есть ли способ?Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Я решил мою проблему с помощью команды 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;");
0 голосов
/ 03 мая 2019

ПОСЛЕДОВАТЕЛЬНОСТЬ - слово, зарезервированное оракулом, возможно, это проблема.

...