在Fluent Migrator
中创建之前是否可以检查序列是否存在?
这是我的代码:
IfDatabase("Oracle").Create.Sequence("SEQ_TEST").MaxValue(1).MaxValue(99999).StartWith(1).IncrementBy(1);
错误:
ORA-00955:名称已被现有对象提示所使用
我可以使用以下代码检查表格:
Schema.Table("TableTest").Exists()
但是我不知道如何检查序列,有什么办法吗? 任何帮助表示赞赏!
答案 0 :(得分:0)
SEQUENCE是一个Oracle保留字,可能是问题所在。
答案 1 :(得分:0)
我使用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;");