如果不存在,我想创建一个下表。
create table TEST (
id number NOT NULL PRIMARY KEY,
url varchar(1000) NOT NULL,
urlHash varchar(255) NOT NULL,
contentHash varchar(255),
modDate varchar(30),
contentLocation varchar(100),
status integer,
lastCrawlDate varchar(30)) ;
所以我的问题是这样的 -
Create Table TEST if doesn't exist
序列的方式相同 -
create sequence test_seq start with 1 increment by 1 nomaxvalue;
类似这样的查询也将用于序列 -
Create sequence test_sequence if doesn't exist
答案 0 :(得分:10)
你可以做一个匿名的PL / SQL块:
DECLARE
t_count INTEGER;
v_sql VARCHAR2(1000) := 'create table TEST (
id number NOT NULL PRIMARY KEY,
url varchar(1000) NOT NULL,
urlHash varchar(255) NOT NULL,
contentHash varchar(255),
modDate varchar(30),
contentLocation varchar(100),
status integer,
lastCrawlDate varchar(30))';
BEGIN
SELECT COUNT(*)
INTO t_count
FROM user_tables
WHERE table_name = 'TEST';
IF t_count = 0 THEN
EXECUTE IMMEDIATE v_sql;
END IF;
END;
/
同样,您可以使用USER_SEQUENCES查找现有序列并对其进行调整以适应。
答案 1 :(得分:2)
没有这样的选择。
你唯一能做的就是继续创建表和序列,然后忽略“table already exists”错误。