diff --git a/plsql/item.sql b/plsql/item.sql index 199acd73..97bd9e83 100644 --- a/plsql/item.sql +++ b/plsql/item.sql @@ -1,5 +1,14 @@ PROMPT Creating Table 'ITEM' -DROP TABLE item; + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE item'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + CREATE TABLE item ( name VARCHAR2(100) NOT NULL, @@ -7,3 +16,5 @@ CREATE TABLE item quality NUMBER(6) NOT NULL ); / + +SHOW ERRORS; diff --git a/plsql/item_with_id.sql b/plsql/item_with_id.sql index 7d78aedf..8d431257 100644 --- a/plsql/item_with_id.sql +++ b/plsql/item_with_id.sql @@ -1,5 +1,14 @@ PROMPT Creating Table 'ITEM' with auto-increment primary key 'ID' -DROP TABLE item; + +BEGIN + EXECUTE IMMEDIATE 'DROP TABLE item'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -942 THEN + RAISE; + END IF; +END; + CREATE TABLE item ( id NUMBER(6) NOT NULL, @@ -13,19 +22,29 @@ ALTER TABLE item ADD ( CONSTRAINT item_pk PRIMARY KEY (ID)); / -DROP SEQUENCE item_id_seq; -CREATE SEQUENCE item_id_seq - INCREMENT BY 1 - START WITH 1 +BEGIN + EXECUTE IMMEDIATE 'DROP SEQUENCE item_id_seq'; +EXCEPTION + WHEN OTHERS THEN + IF SQLCODE != -2289 THEN + RAISE; + END IF; +END; + +CREATE SEQUENCE item_id_seq + INCREMENT BY 1 + START WITH 1 MAXVALUE 999999 - MINVALUE 1 + MINVALUE 1 NOCYCLE; / -CREATE OR REPLACE TRIGGER item_bis_trg - BEFORE INSERT ON item - FOR EACH ROW +CREATE OR REPLACE TRIGGER item_bis_trg + BEFORE INSERT ON item + FOR EACH ROW BEGIN SELECT item_id_seq.NEXTVAL INTO :new.id FROM dual; END; / + +SHOW ERRORS;