Posted By: JiMo (I'm flyiiiiiiing!!!!!!!!!) on 'CZdatabases'
Title: jeste jeden dotaz
Date: Mon Jun 23 03:22:43 2003
Ahoj, mam jeste jeden dotaz:
tyka se integritniho omezeni te same databaze, a sice tabulky "endorses".
Jde o to, ze mam
endorses (Gourmet, Shop)
best_buys (Gourmet, Shop, Cheese)
a potrebuju tam nacpat, ze k zarazeni do endorses potrebuju, aby alespon jedna
nabidka obchodu byla zarazena do best_buys. Ale staci jen, aby tam byla
zarazena ve chvili pridavani do endorses, ne pozdeji - takze zadna trvala
zavislost, zadne cizi klice.
Zde uz je asi hodne dulezite, na cem to bezi, takze jde o Oracle9 (idelani by
bylo, kdyby to jelo i pod 8kou, ale neni to nutnost).
Problem je v tom, ze do CHECKu se mi nejak nepodarilo to nacpat a s konstrukci
odpovidajiciho triggeru jsem zatim take nemel stesti.
Mam jeden napad a to je nacpat to do DOMAIN, kde lze v CHECKu delat i tes typu
VALUE IN SELECT ... , coz mi u definice normalni tabulky rve chybu.
Problem s tim triggerem je, ze netusim, jak docilit u BEFORE triggeru, aby se
pridani vubec neprovedlo, INSTEAD OF nelze pouzit na tabulku, ale jen na
pohled a u AFTER jsem zkousel proste dany radek smazat, pokud jsem nenasel
odpovidajici zaznam, ale to zase nejde, protoze ten trigger si tabulku
endorses nejak zamkne, kdyz s ni pracuje a tak z ni nemuze mazat (nebo alespon
tak jsem pochopil ty hlasky, co mi psal).
Mate nekdo nejaky napad? Pripadne je tu nekdo hodne zkuseny, kdo by rekl, ze
to nejde a dalo by se mu to verit? ;))
Diky moc, preji hezky den
JiMo:)