如何检查 Fluent Migrator 中是否存在序列
How to check if sequence exists in Fluent Migrator
在 Fluent Migrator
中创建之前是否有任何方法检查序列是否存在?
这是我的代码:
IfDatabase("Oracle").Create.Sequence("SEQ_TEST").MaxValue(1).MaxValue(99999).StartWith(1).IncrementBy(2);
错误:
ORA-00955: name is already being used by existing object tips
我可以使用此代码检查表格:
Schema.Table("TableTest").Exists()
但我不知道如何检查序列,有什么办法吗?
感谢您的帮助!
SEQUENCE是oracle保留字,可能是问题所在。
我使用 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;");
在 Fluent Migrator
中创建之前是否有任何方法检查序列是否存在?
这是我的代码:
IfDatabase("Oracle").Create.Sequence("SEQ_TEST").MaxValue(1).MaxValue(99999).StartWith(1).IncrementBy(2);
错误:
ORA-00955: name is already being used by existing object tips
我可以使用此代码检查表格:
Schema.Table("TableTest").Exists()
但我不知道如何检查序列,有什么办法吗? 感谢您的帮助!
SEQUENCE是oracle保留字,可能是问题所在。
我使用 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;");