Posted By: vejpuste (Libor Vejpustek) on 'CZdatabases'
Title: Re: Snim ci bdim? - Oracle8 a sequence jako default value
Date: Thu Feb 3 12:19:08 2000
> Hi all!
>
> Nevim, jestli neumim cist anglicky nebo se mi to je zda, ale v dokumentaci
> na
> "Where to Use Sequence Values" pisou:
> - you cannot use CURRVAL and NEXTVAL in these places:
> ...
> . DEFAULT value of a column in a CREATE TABLE or ALTER TABLE statement
> ...
>
> Dela si ze mne manual srandu a nebo je opravdu mozne, ze nejnovejsi Oracle
> nezvlada takovouhle zakladni, trivialni a IMHO dulezitou vec?
No tak dobre. Tak uz to konecne napisu presne. V default value to
nepripousti. Da se to obejit pomoci triggeru. Vyrob trigger s volbama BEFORE
INSERT nad prislusnou tabulkou a do BODY dej :
BEGIN
SELECT SEKVENCE.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
ID je polozka ve ktere mas ID zaznamu. Snad je to jasnejsi.
Presna syntaxe je :
CREATE OR REPLACE TRIGGER "SCHEMA".NAZEV BEFORE INSERT ON "SCHEMA"."TABULKA"
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
BEGIN
SELECT SEKVENCE.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
;
Libor Vejpustek
Ceska zemedelska univerzita Praha
http://web.czu.cz/~vejpuste/ E-mail : vejpuste@uvt.czu.cz