Vediamo un pò di codice utile per quella meraviglia di Oracle.
La prima cosa inquietante che si incontra volendo creare una tabella utilizzando il nostro favoloso DBMS di fiducia, ossia Oracle, è la mancanza di AUTO_INCREMENT, utile ad esempio per creare automaticamente l'intero da inserire progressivamente come valore di una chiave primaria.
Oracle ha bisogno di una SEQUENCE con incremento, ad esempio, di uno eppoi di un TRIGGER che calcoli e incrementi di conseguenza ad ogni inserimento il valore dell'intero.
Vediamo il codice (esempio per la creazione di due tabelle in relazione con indici autoincrementanti):
...[continua]...
-- TABLE PERSONS CREATE TABLE Persons ( P_Id int PRIMARY KEY not null, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) ); CREATE SEQUENCE persons_sequence START WITH 1 INCREMENT BY 1; CREATE OR REPLACE TRIGGER persons_trigger BEFORE INSERT ON Persons REFERENCING NEW AS NEW FOR EACH ROW BEGIN SELECT persons_sequence.nextval INTO :NEW.P_Id FROM dual; END; -- TABLE ORDERS, FK INTO PERSONS CREATE TABLE Orders ( o_id int PRIMARY KEY not null, pers_id int not null, CONSTRAINT fk_orders FOREIGN KEY (pers_id) REFERENCES persons(p_id) ); CREATE SEQUENCE orders_sequence START WITH 1 INCREMENT BY 1; CREATE OR REPLACE TRIGGER orders_trigger BEFORE INSERT ON orders REFERENCING NEW AS NEW FOR EACH ROW BEGIN SELECT orders_sequence.nextval INTO :NEW.o_id FROM dual; END;