#1 17.12.07 21:45
[Проблема]Связь таблиц в OracleXE
Вообщем есть проблема со связью одной таблицы с другой.
Описание проблемы:
Есть таблица GORODA (ID_goroda, goroda)
и
таблица MARSHRUTI (ID_marshruta, ID_doroda_otp, ID_doroda_naz, Stoimostj_dostavki)
Так вот как мне связать при запросе в SQL-е ID_doroda_otp с ID_goroda????????
Написала запрос:
select g.doroda_otp
from marshruti m
inner join doroda_otp g
on (m.id_doroda_otp=g.id_goroda)
а он мне выдает ошибку:
ORA-00942: table or view does not exist
При этом в ERWIN-е ключи ID_doroda_otp, ID_doroda_naz не появились, только ID_goroda, связь необязательная.
Может я что-то делаю не так!!! Я не знаю. Подскажите пожалуйста, где ошибка. Парюсь над этой проблемой уже с неделю.
Offline
#2 17.12.07 21:57
Re: [Проблема]Связь таблиц в OracleXE
doroda_otp таблица точног есть такая?:)
Offline
#7 18.12.07 16:37
Re: [Проблема]Связь таблиц в OracleXE
LuckyLove написал(а):
ORA-00942: table or view does not exist
Он ругается, что не может найти таблицу, к которой ты обращаешься.... просмотри внимательно: скорее всего гдето не тот символ стоит.... т.е. проверь идентичны ли название табл-ы, которая создана и назв-е табл-ы которое прописано у тебя в запросе...
Часто такая ошибка вознакивет по невимательности.
Offline
#10 18.12.07 17:39
#11 18.12.07 17:42
#12 18.12.07 17:42
#13 18.12.07 17:43
#14 18.12.07 17:45
#15 18.12.07 17:48
#16 18.12.07 17:48
#17 18.12.07 17:49
Re: [Проблема]Связь таблиц в OracleXE
скрипт
Код::
CREATE TABLE BANKI (
ID_banka INTEGER NOT NULL,
Name_bank VARCHAR2(70) NULL,
INN INTEGER NULL,
Raschetnij_schet VARCHAR2(40) NULL,
ID_goroda INTEGER NULL
);
CREATE UNIQUE INDEX XPKBANKI ON BANKI
(
ID_banka ASC
);
ALTER TABLE BANKI
ADD ( PRIMARY KEY (ID_banka) ) ;
CREATE TABLE DOLZHNOSTI (
ID_dolzhnosti INTEGER NOT NULL,
Dolzhnostj VARCHAR2(40) NULL,
Oklad INTEGER NULL
);
CREATE UNIQUE INDEX XPKDOLZHNOSTI ON DOLZHNOSTI
(
ID_dolzhnosti ASC
);
ALTER TABLE DOLZHNOSTI
ADD ( PRIMARY KEY (ID_dolzhnosti) ) ;
CREATE TABLE GORODA (
ID_goroda INTEGER NOT NULL,
Nazvanie VARCHAR2(50) NOT NULL
);
CREATE UNIQUE INDEX XPKGORODA ON GORODA
(
ID_goroda ASC
);
ALTER TABLE GORODA
ADD ( PRIMARY KEY (ID_goroda) ) ;
CREATE TABLE KLIENTI (
ID_klienta INTEGER NOT NULL,
Firma_klient VARCHAR2(70) NULL,
Indeks INTEGER NULL,
Number_doma VARCHAR2(12) NULL,
Number_ofisa VARCHAR2(8) NULL,
Telefon INTEGER NULL,
Faks INTEGER NULL,
E_mail VARCHAR2(60) NULL,
Number_dogovora VARCHAR2(40) NULL,
ID_personal_skidki INTEGER NULL,
ID_goroda INTEGER NULL,
ID_ylici INTEGER NULL,
ID_banka INTEGER NULL
);
CREATE UNIQUE INDEX XPKKLIENTI ON KLIENTI
(
ID_klienta ASC
);
ALTER TABLE KLIENTI
ADD ( PRIMARY KEY (ID_klienta) ) ;
CREATE TABLE MARSHRUTI (
ID_marshruta INTEGER NOT NULL,
ID_doroda_otpravlenija INTEGER NULL,
ID_doroda_naznachenija INTEGER NULL,
Stoimost_dostavki INTEGER NULL,
Z_d_tarif INTEGER NULL,
ID_goroda INTEGER NULL
);
CREATE UNIQUE INDEX XPKMARSHRUTI ON MARSHRUTI
(
ID_marshruta ASC
);
ALTER TABLE MARSHRUTI
ADD ( PRIMARY KEY (ID_marshruta) ) ;
CREATE TABLE PEREMESCHENIJA (
ID_sotrudnika INTEGER NOT NULL,
Data_prikaza DATE NULL,
Nomer_prikaza VARCHAR2(50) NULL,
ID_dolzhnosti INTEGER NULL,
ID_sotrudnica INTEGER NULL,
ID_prichini_perevoda INTEGER NULL
);
CREATE UNIQUE INDEX XPKPEREMESCHENIJA ON PEREMESCHENIJA
(
ID_sotrudnika ASC
);
ALTER TABLE PEREMESCHENIJA
ADD ( PRIMARY KEY (ID_sotrudnika) ) ;
CREATE TABLE PERSONAL_SKIDKI (
ID_personal_skidki INTEGER NOT NULL,
Skidki VARCHAR2(20) NULL
);
CREATE UNIQUE INDEX XPKPERSONAL_SKIDKI ON PERSONAL_SKIDKI
(
ID_personal_skidki ASC
);
ALTER TABLE PERSONAL_SKIDKI
ADD ( PRIMARY KEY (ID_personal_skidki) ) ;
CREATE TABLE PRICHINI_PEREVODA (
ID_prichini_perevoda INTEGER NOT NULL,
Opisanie VARCHAR2(300) NULL
);
CREATE UNIQUE INDEX XPKPRICHINI_PEREVODA ON PRICHINI_PEREVODA
(
ID_prichini_perevoda ASC
);
ALTER TABLE PRICHINI_PEREVODA
ADD ( PRIMARY KEY (ID_prichini_perevoda) ) ;
CREATE TABLE SOTRUDNIKI (
ID_sotrudnica INTEGER NOT NULL,
Familija VARCHAR2(40) NULL,
Name VARCHAR2(40) NULL,
Otchestvo VARCHAR2(40) NULL,
Indeks INTEGER NULL,
Nomer_doma VARCHAR2(12) NULL,
Nomer_kvartiri VARCHAR2(8) NULL,
Data_rozhdeniya DATE NULL,
ID_ylici INTEGER NULL,
ID_dolzhnosti INTEGER NULL
);
CREATE UNIQUE INDEX XPKSOTRUDNIKI ON SOTRUDNIKI
(
ID_sotrudnica ASC
);
ALTER TABLE SOTRUDNIKI
ADD ( PRIMARY KEY (ID_sotrudnica) ) ;
CREATE TABLE SPISKI_MEST (
ID_spiska_mesta INTEGER NOT NULL,
Nomer_mesta INTEGER NULL,
Dlina INTEGER NULL,
Shirina INTEGER NULL,
Ves INTEGER NULL,
Visota INTEGER NULL,
Straxovaja_stoimostj INTEGER NULL,
ID_xarakteristiki_gruza INTEGER NULL
);
CREATE UNIQUE INDEX XPKSPISKI_MEST ON SPISKI_MEST
(
ID_spiska_mesta ASC
);
ALTER TABLE SPISKI_MEST
ADD ( PRIMARY KEY (ID_spiska_mesta) ) ;
CREATE TABLE XARAKTERISTIKI_GRUZA (
ID_xarakteristiki_gruza INTEGER NOT NULL,
Xarakteristika VARCHAR2(250) NULL
);
CREATE UNIQUE INDEX XPKXARAKTERISTIKI_GRUZA ON XARAKTERISTIKI_GRUZA
(
ID_xarakteristiki_gruza ASC
);
ALTER TABLE XARAKTERISTIKI_GRUZA
ADD ( PRIMARY KEY (ID_xarakteristiki_gruza) ) ;
CREATE TABLE YLICI (
ID_ylici INTEGER NOT NULL,
Ylici VARCHAR2(50) NULL
);
CREATE UNIQUE INDEX XPKYLICI ON YLICI
(
ID_ylici ASC
);
ALTER TABLE YLICI
ADD ( PRIMARY KEY (ID_ylici) ) ;
CREATE TABLE ZAJAVKI (
ID_zajavki INTEGER NOT NULL,
Chetchik_zakazov INTEGER NULL,
Data_zakaza DATE NULL,
Time_zakaza DATE NULL,
Nomer_poezda INTEGER NULL,
Nomer_vagona INTEGER NULL,
Strana_proisxozhdenija VARCHAR2(50) NULL,
Data_otpravlenija DATE NULL,
Data_pribitija DATE NULL,
Nomer_schet_fakturi VARCHAR2(50) NULL,
ID_sotrudnica INTEGER NULL,
ID_spiska_mesta INTEGER NULL,
ID_klienta INTEGER NULL,
ID_marshruta INTEGER NULL
);
CREATE UNIQUE INDEX XPKZAJAVKI ON ZAJAVKI
(
ID_zajavki ASC
);
ALTER TABLE ZAJAVKI
ADD ( PRIMARY KEY (ID_zajavki) ) ;
ALTER TABLE BANKI
ADD ( FOREIGN KEY (ID_goroda)
REFERENCES GORODA
ON DELETE SET NULL ) ;
ALTER TABLE KLIENTI
ADD ( FOREIGN KEY (ID_banka)
REFERENCES BANKI
ON DELETE SET NULL ) ;
ALTER TABLE KLIENTI
ADD ( FOREIGN KEY (ID_ylici)
REFERENCES YLICI
ON DELETE SET NULL ) ;
ALTER TABLE KLIENTI
ADD ( FOREIGN KEY (ID_goroda)
REFERENCES GORODA
ON DELETE SET NULL ) ;
ALTER TABLE KLIENTI
ADD ( FOREIGN KEY (ID_personal_skidki)
REFERENCES PERSONAL_SKIDKI
ON DELETE SET NULL ) ;
ALTER TABLE MARSHRUTI
ADD ( FOREIGN KEY (ID_goroda)
REFERENCES GORODA
ON DELETE SET NULL ) ;
ALTER TABLE MARSHRUTI
ADD ( FOREIGN KEY (ID_goroda)
REFERENCES GORODA
ON DELETE SET NULL ) ;
ALTER TABLE PEREMESCHENIJA
ADD ( FOREIGN KEY (ID_prichini_perevoda)
REFERENCES PRICHINI_PEREVODA
ON DELETE SET NULL ) ;
ALTER TABLE PEREMESCHENIJA
ADD ( FOREIGN KEY (ID_sotrudnica)
REFERENCES SOTRUDNIKI
ON DELETE SET NULL ) ;
ALTER TABLE PEREMESCHENIJA
ADD ( FOREIGN KEY (ID_dolzhnosti)
REFERENCES DOLZHNOSTI
ON DELETE SET NULL ) ;
ALTER TABLE SOTRUDNIKI
ADD ( FOREIGN KEY (ID_dolzhnosti)
REFERENCES DOLZHNOSTI
ON DELETE SET NULL ) ;
ALTER TABLE SOTRUDNIKI
ADD ( FOREIGN KEY (ID_ylici)
REFERENCES YLICI
ON DELETE SET NULL ) ;
ALTER TABLE SPISKI_MEST
ADD ( FOREIGN KEY (ID_xarakteristiki_gruza)
REFERENCES XARAKTERISTIKI_GRUZA
ON DELETE SET NULL ) ;
ALTER TABLE ZAJAVKI
ADD ( FOREIGN KEY (ID_marshruta)
REFERENCES MARSHRUTI
ON DELETE SET NULL ) ;
ALTER TABLE ZAJAVKI
ADD ( FOREIGN KEY (ID_sotrudnica)
REFERENCES SOTRUDNIKI
ON DELETE SET NULL ) ;
ALTER TABLE ZAJAVKI
ADD ( FOREIGN KEY (ID_spiska_mesta)
REFERENCES SPISKI_MEST
ON DELETE SET NULL ) ;
ALTER TABLE ZAJAVKI
ADD ( FOREIGN KEY (ID_klienta)
REFERENCES KLIENTI
ON DELETE SET NULL ) ;
create trigger tD_BANKI after DELETE on BANKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on BANKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* BANKI R/112 KLIENTI ON PARENT DELETE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_banka = NULL */
KLIENTI.ID_banka = NULL
where
/* KLIENTI.ID_banka = :old.ID_banka */
KLIENTI.ID_banka = :old.ID_banka;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_BANKI after INSERT on BANKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on BANKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/109 BANKI ON CHILD INSERT SET NULL */
update BANKI
set
/* BANKI.ID_goroda = NULL */
BANKI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and BANKI.ID_banka = :new.ID_banka */
and BANKI.ID_banka = :new.ID_banka;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_BANKI after UPDATE on BANKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on BANKI
declare numrows INTEGER;
begin
/* BANKI R/112 KLIENTI ON PARENT UPDATE SET NULL */
if
/* :old.ID_banka <> :new.ID_banka */
:old.ID_banka <> :new.ID_banka
then
update KLIENTI
set
/* KLIENTI.ID_banka = NULL */
KLIENTI.ID_banka = NULL
where
/* KLIENTI.ID_banka = :old.ID_banka */
KLIENTI.ID_banka = :old.ID_banka;
end if;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/109 BANKI ON CHILD UPDATE SET NULL */
update BANKI
set
/* BANKI.ID_goroda = NULL */
BANKI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and BANKI.ID_banka = :new.ID_banka */
and BANKI.ID_banka = :new.ID_banka;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_DOLZHNOSTI after DELETE on DOLZHNOSTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on DOLZHNOSTI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* DOLZHNOSTI R/11 SOTRUDNIKI ON PARENT DELETE SET NULL */
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_dolzhnosti = NULL */
SOTRUDNIKI.ID_dolzhnosti = NULL
where
/* SOTRUDNIKI.ID_dolzhnosti = :old.ID_dolzhnosti */
SOTRUDNIKI.ID_dolzhnosti = :old.ID_dolzhnosti;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* DOLZHNOSTI R/100 PEREMESCHENIJA ON PARENT DELETE SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_dolzhnosti = NULL */
PEREMESCHENIJA.ID_dolzhnosti = NULL
where
/* PEREMESCHENIJA.ID_dolzhnosti = :old.ID_dolzhnosti */
PEREMESCHENIJA.ID_dolzhnosti = :old.ID_dolzhnosti;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_DOLZHNOSTI after UPDATE on DOLZHNOSTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on DOLZHNOSTI
declare numrows INTEGER;
begin
/* DOLZHNOSTI R/11 SOTRUDNIKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_dolzhnosti <> :new.ID_dolzhnosti */
:old.ID_dolzhnosti <> :new.ID_dolzhnosti
then
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_dolzhnosti = NULL */
SOTRUDNIKI.ID_dolzhnosti = NULL
where
/* SOTRUDNIKI.ID_dolzhnosti = :old.ID_dolzhnosti */
SOTRUDNIKI.ID_dolzhnosti = :old.ID_dolzhnosti;
end if;
/* DOLZHNOSTI R/100 PEREMESCHENIJA ON PARENT UPDATE SET NULL */
if
/* :old.ID_dolzhnosti <> :new.ID_dolzhnosti */
:old.ID_dolzhnosti <> :new.ID_dolzhnosti
then
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_dolzhnosti = NULL */
PEREMESCHENIJA.ID_dolzhnosti = NULL
where
/* PEREMESCHENIJA.ID_dolzhnosti = :old.ID_dolzhnosti */
PEREMESCHENIJA.ID_dolzhnosti = :old.ID_dolzhnosti;
end if;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_GORODA after DELETE on GORODA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on GORODA
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/3 MARSHRUTI ON PARENT DELETE SET NULL */
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
/* MARSHRUTI.ID_goroda = :old.ID_goroda */
MARSHRUTI.ID_goroda = :old.ID_goroda;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/2 MARSHRUTI ON PARENT DELETE SET NULL */
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
/* MARSHRUTI.ID_goroda = :old.ID_goroda */
MARSHRUTI.ID_goroda = :old.ID_goroda;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/110 KLIENTI ON PARENT DELETE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_goroda = NULL */
KLIENTI.ID_goroda = NULL
where
/* KLIENTI.ID_goroda = :old.ID_goroda */
KLIENTI.ID_goroda = :old.ID_goroda;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/109 BANKI ON PARENT DELETE SET NULL */
update BANKI
set
/* BANKI.ID_goroda = NULL */
BANKI.ID_goroda = NULL
where
/* BANKI.ID_goroda = :old.ID_goroda */
BANKI.ID_goroda = :old.ID_goroda;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_GORODA after UPDATE on GORODA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on GORODA
declare numrows INTEGER;
begin
/* GORODA R/3 MARSHRUTI ON PARENT UPDATE SET NULL */
if
/* :old.ID_goroda <> :new.ID_goroda */
:old.ID_goroda <> :new.ID_goroda
then
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
/* MARSHRUTI.ID_goroda = :old.ID_goroda */
MARSHRUTI.ID_goroda = :old.ID_goroda;
end if;
/* GORODA R/2 MARSHRUTI ON PARENT UPDATE SET NULL */
if
/* :old.ID_goroda <> :new.ID_goroda */
:old.ID_goroda <> :new.ID_goroda
then
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
/* MARSHRUTI.ID_goroda = :old.ID_goroda */
MARSHRUTI.ID_goroda = :old.ID_goroda;
end if;
/* GORODA R/110 KLIENTI ON PARENT UPDATE SET NULL */
if
/* :old.ID_goroda <> :new.ID_goroda */
:old.ID_goroda <> :new.ID_goroda
then
update KLIENTI
set
/* KLIENTI.ID_goroda = NULL */
KLIENTI.ID_goroda = NULL
where
/* KLIENTI.ID_goroda = :old.ID_goroda */
KLIENTI.ID_goroda = :old.ID_goroda;
end if;
/* GORODA R/109 BANKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_goroda <> :new.ID_goroda */
:old.ID_goroda <> :new.ID_goroda
then
update BANKI
set
/* BANKI.ID_goroda = NULL */
BANKI.ID_goroda = NULL
where
/* BANKI.ID_goroda = :old.ID_goroda */
BANKI.ID_goroda = :old.ID_goroda;
end if;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_KLIENTI after DELETE on KLIENTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on KLIENTI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* KLIENTI R/1 ZAJAVKI ON PARENT DELETE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_klienta = NULL */
ZAJAVKI.ID_klienta = NULL
where
/* ZAJAVKI.ID_klienta = :old.ID_klienta */
ZAJAVKI.ID_klienta = :old.ID_klienta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_KLIENTI after INSERT on KLIENTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on KLIENTI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* BANKI R/112 KLIENTI ON CHILD INSERT SET NULL */
update KLIENTI
set
/* KLIENTI.ID_banka = NULL */
KLIENTI.ID_banka = NULL
where
not exists (
select * from BANKI
where
/* :new.ID_banka = BANKI.ID_banka */
:new.ID_banka = BANKI.ID_banka
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* YLICI R/111 KLIENTI ON CHILD INSERT SET NULL */
update KLIENTI
set
/* KLIENTI.ID_ylici = NULL */
KLIENTI.ID_ylici = NULL
where
not exists (
select * from YLICI
where
/* :new.ID_ylici = YLICI.ID_ylici */
:new.ID_ylici = YLICI.ID_ylici
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/110 KLIENTI ON CHILD INSERT SET NULL */
update KLIENTI
set
/* KLIENTI.ID_goroda = NULL */
KLIENTI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* PERSONAL_SKIDKI R/106 KLIENTI ON CHILD INSERT SET NULL */
update KLIENTI
set
/* KLIENTI.ID_personal_skidki = NULL */
KLIENTI.ID_personal_skidki = NULL
where
not exists (
select * from PERSONAL_SKIDKI
where
/* :new.ID_personal_skidki = PERSONAL_SKIDKI.ID_personal_skidki */
:new.ID_personal_skidki = PERSONAL_SKIDKI.ID_personal_skidki
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_KLIENTI after UPDATE on KLIENTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on KLIENTI
declare numrows INTEGER;
begin
/* KLIENTI R/1 ZAJAVKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_klienta <> :new.ID_klienta */
:old.ID_klienta <> :new.ID_klienta
then
update ZAJAVKI
set
/* ZAJAVKI.ID_klienta = NULL */
ZAJAVKI.ID_klienta = NULL
where
/* ZAJAVKI.ID_klienta = :old.ID_klienta */
ZAJAVKI.ID_klienta = :old.ID_klienta;
end if;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* BANKI R/112 KLIENTI ON CHILD UPDATE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_banka = NULL */
KLIENTI.ID_banka = NULL
where
not exists (
select * from BANKI
where
/* :new.ID_banka = BANKI.ID_banka */
:new.ID_banka = BANKI.ID_banka
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* YLICI R/111 KLIENTI ON CHILD UPDATE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_ylici = NULL */
KLIENTI.ID_ylici = NULL
where
not exists (
select * from YLICI
where
/* :new.ID_ylici = YLICI.ID_ylici */
:new.ID_ylici = YLICI.ID_ylici
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/110 KLIENTI ON CHILD UPDATE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_goroda = NULL */
KLIENTI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* PERSONAL_SKIDKI R/106 KLIENTI ON CHILD UPDATE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_personal_skidki = NULL */
KLIENTI.ID_personal_skidki = NULL
where
not exists (
select * from PERSONAL_SKIDKI
where
/* :new.ID_personal_skidki = PERSONAL_SKIDKI.ID_personal_skidki */
:new.ID_personal_skidki = PERSONAL_SKIDKI.ID_personal_skidki
)
/* and KLIENTI.ID_klienta = :new.ID_klienta */
and KLIENTI.ID_klienta = :new.ID_klienta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_MARSHRUTI after DELETE on MARSHRUTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on MARSHRUTI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* MARSHRUTI R/1 ZAJAVKI ON PARENT DELETE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_marshruta = NULL */
ZAJAVKI.ID_marshruta = NULL
where
/* ZAJAVKI.ID_marshruta = :old.ID_marshruta */
ZAJAVKI.ID_marshruta = :old.ID_marshruta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_MARSHRUTI after INSERT on MARSHRUTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on MARSHRUTI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/3 MARSHRUTI ON CHILD INSERT SET NULL */
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and MARSHRUTI.ID_marshruta = :new.ID_marshruta */
and MARSHRUTI.ID_marshruta = :new.ID_marshruta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/2 MARSHRUTI ON CHILD INSERT SET NULL */
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and MARSHRUTI.ID_marshruta = :new.ID_marshruta */
and MARSHRUTI.ID_marshruta = :new.ID_marshruta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_MARSHRUTI after UPDATE on MARSHRUTI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on MARSHRUTI
declare numrows INTEGER;
begin
/* MARSHRUTI R/1 ZAJAVKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_marshruta <> :new.ID_marshruta */
:old.ID_marshruta <> :new.ID_marshruta
then
update ZAJAVKI
set
/* ZAJAVKI.ID_marshruta = NULL */
ZAJAVKI.ID_marshruta = NULL
where
/* ZAJAVKI.ID_marshruta = :old.ID_marshruta */
ZAJAVKI.ID_marshruta = :old.ID_marshruta;
end if;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/3 MARSHRUTI ON CHILD UPDATE SET NULL */
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and MARSHRUTI.ID_marshruta = :new.ID_marshruta */
and MARSHRUTI.ID_marshruta = :new.ID_marshruta;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* GORODA R/2 MARSHRUTI ON CHILD UPDATE SET NULL */
update MARSHRUTI
set
/* MARSHRUTI.ID_goroda = NULL */
MARSHRUTI.ID_goroda = NULL
where
not exists (
select * from GORODA
where
/* :new.ID_goroda = GORODA.ID_goroda */
:new.ID_goroda = GORODA.ID_goroda
)
/* and MARSHRUTI.ID_marshruta = :new.ID_marshruta */
and MARSHRUTI.ID_marshruta = :new.ID_marshruta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_PEREMESCHENIJA after INSERT on PEREMESCHENIJA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on PEREMESCHENIJA
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* PRICHINI_PEREVODA R/13 PEREMESCHENIJA ON CHILD INSERT SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_prichini_perevoda = NULL */
PEREMESCHENIJA.ID_prichini_perevoda = NULL
where
not exists (
select * from PRICHINI_PEREVODA
where
/* :new.ID_prichini_perevoda = PRICHINI_PEREVODA.ID_prichini_perevoda */
:new.ID_prichini_perevoda = PRICHINI_PEREVODA.ID_prichini_perevoda
)
/* and PEREMESCHENIJA.ID_prichini_perevoda = :new.ID_prichini_perevoda */
and PEREMESCHENIJA.ID_sotrudnika = :new.ID_sotrudnika;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SOTRUDNIKI R/12 PEREMESCHENIJA ON CHILD INSERT SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_sotrudnica = NULL */
PEREMESCHENIJA.ID_sotrudnica = NULL
where
not exists (
select * from SOTRUDNIKI
where
/* :new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica */
:new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica
)
/* and PEREMESCHENIJA.ID_sotrudnica = :new.ID_sotrudnica */
and PEREMESCHENIJA.ID_sotrudnika = :new.ID_sotrudnika;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* DOLZHNOSTI R/100 PEREMESCHENIJA ON CHILD INSERT SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_dolzhnosti = NULL */
PEREMESCHENIJA.ID_dolzhnosti = NULL
where
not exists (
select * from DOLZHNOSTI
where
/* :new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti */
:new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti
)
/* and PEREMESCHENIJA.ID_dolzhnosti = :new.ID_dolzhnosti */
and PEREMESCHENIJA.ID_sotrudnika = :new.ID_sotrudnika;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_PEREMESCHENIJA after UPDATE on PEREMESCHENIJA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on PEREMESCHENIJA
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* PRICHINI_PEREVODA R/13 PEREMESCHENIJA ON CHILD UPDATE SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_prichini_perevoda = NULL */
PEREMESCHENIJA.ID_prichini_perevoda = NULL
where
not exists (
select * from PRICHINI_PEREVODA
where
/* :new.ID_prichini_perevoda = PRICHINI_PEREVODA.ID_prichini_perevoda */
:new.ID_prichini_perevoda = PRICHINI_PEREVODA.ID_prichini_perevoda
)
/* and PEREMESCHENIJA.ID_prichini_perevoda = :new.ID_prichini_perevoda */
and PEREMESCHENIJA.ID_sotrudnika = :new.ID_sotrudnika;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SOTRUDNIKI R/12 PEREMESCHENIJA ON CHILD UPDATE SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_sotrudnica = NULL */
PEREMESCHENIJA.ID_sotrudnica = NULL
where
not exists (
select * from SOTRUDNIKI
where
/* :new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica */
:new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica
)
/* and PEREMESCHENIJA.ID_sotrudnica = :new.ID_sotrudnica */
and PEREMESCHENIJA.ID_sotrudnika = :new.ID_sotrudnika;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* DOLZHNOSTI R/100 PEREMESCHENIJA ON CHILD UPDATE SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_dolzhnosti = NULL */
PEREMESCHENIJA.ID_dolzhnosti = NULL
where
not exists (
select * from DOLZHNOSTI
where
/* :new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti */
:new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti
)
/* and PEREMESCHENIJA.ID_dolzhnosti = :new.ID_dolzhnosti */
and PEREMESCHENIJA.ID_sotrudnika = :new.ID_sotrudnika;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_PERSONAL_SKIDKI after DELETE on PERSONAL_SKIDKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on PERSONAL_SKIDKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* PERSONAL_SKIDKI R/106 KLIENTI ON PARENT DELETE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_personal_skidki = NULL */
KLIENTI.ID_personal_skidki = NULL
where
/* KLIENTI.ID_personal_skidki = :old.ID_personal_skidki */
KLIENTI.ID_personal_skidki = :old.ID_personal_skidki;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_PERSONAL_SKIDKI after UPDATE on PERSONAL_SKIDKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on PERSONAL_SKIDKI
declare numrows INTEGER;
begin
/* PERSONAL_SKIDKI R/106 KLIENTI ON PARENT UPDATE SET NULL */
if
/* :old.ID_personal_skidki <> :new.ID_personal_skidki */
:old.ID_personal_skidki <> :new.ID_personal_skidki
then
update KLIENTI
set
/* KLIENTI.ID_personal_skidki = NULL */
KLIENTI.ID_personal_skidki = NULL
where
/* KLIENTI.ID_personal_skidki = :old.ID_personal_skidki */
KLIENTI.ID_personal_skidki = :old.ID_personal_skidki;
end if;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_PRICHINI_PEREVODA after DELETE on PRICHINI_PEREVODA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on PRICHINI_PEREVODA
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* PRICHINI_PEREVODA R/13 PEREMESCHENIJA ON PARENT DELETE SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_prichini_perevoda = NULL */
PEREMESCHENIJA.ID_prichini_perevoda = NULL
where
/* PEREMESCHENIJA.ID_prichini_perevoda = :old.ID_prichini_perevoda */
PEREMESCHENIJA.ID_prichini_perevoda = :old.ID_prichini_perevoda;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_PRICHINI_PEREVODA after UPDATE on PRICHINI_PEREVODA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on PRICHINI_PEREVODA
declare numrows INTEGER;
begin
/* PRICHINI_PEREVODA R/13 PEREMESCHENIJA ON PARENT UPDATE SET NULL */
if
/* :old.ID_prichini_perevoda <> :new.ID_prichini_perevoda */
:old.ID_prichini_perevoda <> :new.ID_prichini_perevoda
then
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_prichini_perevoda = NULL */
PEREMESCHENIJA.ID_prichini_perevoda = NULL
where
/* PEREMESCHENIJA.ID_prichini_perevoda = :old.ID_prichini_perevoda */
PEREMESCHENIJA.ID_prichini_perevoda = :old.ID_prichini_perevoda;
end if;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_SOTRUDNIKI after DELETE on SOTRUDNIKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on SOTRUDNIKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SOTRUDNIKI R/4 ZAJAVKI ON PARENT DELETE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_sotrudnica = NULL */
ZAJAVKI.ID_sotrudnica = NULL
where
/* ZAJAVKI.ID_sotrudnica = :old.ID_sotrudnica */
ZAJAVKI.ID_sotrudnica = :old.ID_sotrudnica;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SOTRUDNIKI R/12 PEREMESCHENIJA ON PARENT DELETE SET NULL */
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_sotrudnica = NULL */
PEREMESCHENIJA.ID_sotrudnica = NULL
where
/* PEREMESCHENIJA.ID_sotrudnica = :old.ID_sotrudnica */
PEREMESCHENIJA.ID_sotrudnica = :old.ID_sotrudnica;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_SOTRUDNIKI after INSERT on SOTRUDNIKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on SOTRUDNIKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* DOLZHNOSTI R/11 SOTRUDNIKI ON CHILD INSERT SET NULL */
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_dolzhnosti = NULL */
SOTRUDNIKI.ID_dolzhnosti = NULL
where
not exists (
select * from DOLZHNOSTI
where
/* :new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti */
:new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti
)
/* and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica */
and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* YLICI R/102 SOTRUDNIKI ON CHILD INSERT SET NULL */
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_ylici = NULL */
SOTRUDNIKI.ID_ylici = NULL
where
not exists (
select * from YLICI
where
/* :new.ID_ylici = YLICI.ID_ylici */
:new.ID_ylici = YLICI.ID_ylici
)
/* and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica */
and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_SOTRUDNIKI after UPDATE on SOTRUDNIKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on SOTRUDNIKI
declare numrows INTEGER;
begin
/* SOTRUDNIKI R/4 ZAJAVKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_sotrudnica <> :new.ID_sotrudnica */
:old.ID_sotrudnica <> :new.ID_sotrudnica
then
update ZAJAVKI
set
/* ZAJAVKI.ID_sotrudnica = NULL */
ZAJAVKI.ID_sotrudnica = NULL
where
/* ZAJAVKI.ID_sotrudnica = :old.ID_sotrudnica */
ZAJAVKI.ID_sotrudnica = :old.ID_sotrudnica;
end if;
/* SOTRUDNIKI R/12 PEREMESCHENIJA ON PARENT UPDATE SET NULL */
if
/* :old.ID_sotrudnica <> :new.ID_sotrudnica */
:old.ID_sotrudnica <> :new.ID_sotrudnica
then
update PEREMESCHENIJA
set
/* PEREMESCHENIJA.ID_sotrudnica = NULL */
PEREMESCHENIJA.ID_sotrudnica = NULL
where
/* PEREMESCHENIJA.ID_sotrudnica = :old.ID_sotrudnica */
PEREMESCHENIJA.ID_sotrudnica = :old.ID_sotrudnica;
end if;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* DOLZHNOSTI R/11 SOTRUDNIKI ON CHILD UPDATE SET NULL */
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_dolzhnosti = NULL */
SOTRUDNIKI.ID_dolzhnosti = NULL
where
not exists (
select * from DOLZHNOSTI
where
/* :new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti */
:new.ID_dolzhnosti = DOLZHNOSTI.ID_dolzhnosti
)
/* and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica */
and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* YLICI R/102 SOTRUDNIKI ON CHILD UPDATE SET NULL */
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_ylici = NULL */
SOTRUDNIKI.ID_ylici = NULL
where
not exists (
select * from YLICI
where
/* :new.ID_ylici = YLICI.ID_ylici */
:new.ID_ylici = YLICI.ID_ylici
)
/* and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica */
and SOTRUDNIKI.ID_sotrudnica = :new.ID_sotrudnica;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_SPISKI_MEST after DELETE on SPISKI_MEST for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on SPISKI_MEST
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SPISKI_MEST R/3 ZAJAVKI ON PARENT DELETE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_spiska_mesta = NULL */
ZAJAVKI.ID_spiska_mesta = NULL
where
/* ZAJAVKI.ID_spiska_mesta = :old.ID_spiska_mesta */
ZAJAVKI.ID_spiska_mesta = :old.ID_spiska_mesta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_SPISKI_MEST after INSERT on SPISKI_MEST for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on SPISKI_MEST
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* XARAKTERISTIKI_GRUZA R/6 SPISKI_MEST ON CHILD INSERT SET NULL */
update SPISKI_MEST
set
/* SPISKI_MEST.ID_xarakteristiki_gruza = NULL */
SPISKI_MEST.ID_xarakteristiki_gruza = NULL
where
not exists (
select * from XARAKTERISTIKI_GRUZA
where
/* :new.ID_xarakteristiki_gruza = XARAKTERISTIKI_GRUZA.ID_xarakteristiki_gruza */
:new.ID_xarakteristiki_gruza = XARAKTERISTIKI_GRUZA.ID_xarakteristiki_gruza
)
/* and SPISKI_MEST.ID_spiska_mesta = :new.ID_spiska_mesta */
and SPISKI_MEST.ID_spiska_mesta = :new.ID_spiska_mesta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_SPISKI_MEST after UPDATE on SPISKI_MEST for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on SPISKI_MEST
declare numrows INTEGER;
begin
/* SPISKI_MEST R/3 ZAJAVKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_spiska_mesta <> :new.ID_spiska_mesta */
:old.ID_spiska_mesta <> :new.ID_spiska_mesta
then
update ZAJAVKI
set
/* ZAJAVKI.ID_spiska_mesta = NULL */
ZAJAVKI.ID_spiska_mesta = NULL
where
/* ZAJAVKI.ID_spiska_mesta = :old.ID_spiska_mesta */
ZAJAVKI.ID_spiska_mesta = :old.ID_spiska_mesta;
end if;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* XARAKTERISTIKI_GRUZA R/6 SPISKI_MEST ON CHILD UPDATE SET NULL */
update SPISKI_MEST
set
/* SPISKI_MEST.ID_xarakteristiki_gruza = NULL */
SPISKI_MEST.ID_xarakteristiki_gruza = NULL
where
not exists (
select * from XARAKTERISTIKI_GRUZA
where
/* :new.ID_xarakteristiki_gruza = XARAKTERISTIKI_GRUZA.ID_xarakteristiki_gruza */
:new.ID_xarakteristiki_gruza = XARAKTERISTIKI_GRUZA.ID_xarakteristiki_gruza
)
/* and SPISKI_MEST.ID_spiska_mesta = :new.ID_spiska_mesta */
and SPISKI_MEST.ID_spiska_mesta = :new.ID_spiska_mesta;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_XARAKTERISTIKI_GRUZA after DELETE on XARAKTERISTIKI_GRUZA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on XARAKTERISTIKI_GRUZA
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* XARAKTERISTIKI_GRUZA R/6 SPISKI_MEST ON PARENT DELETE SET NULL */
update SPISKI_MEST
set
/* SPISKI_MEST.ID_xarakteristiki_gruza = NULL */
SPISKI_MEST.ID_xarakteristiki_gruza = NULL
where
/* SPISKI_MEST.ID_xarakteristiki_gruza = :old.ID_xarakteristiki_gruza */
SPISKI_MEST.ID_xarakteristiki_gruza = :old.ID_xarakteristiki_gruza;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_XARAKTERISTIKI_GRUZA after UPDATE on XARAKTERISTIKI_GRUZA for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on XARAKTERISTIKI_GRUZA
declare numrows INTEGER;
begin
/* XARAKTERISTIKI_GRUZA R/6 SPISKI_MEST ON PARENT UPDATE SET NULL */
if
/* :old.ID_xarakteristiki_gruza <> :new.ID_xarakteristiki_gruza */
:old.ID_xarakteristiki_gruza <> :new.ID_xarakteristiki_gruza
then
update SPISKI_MEST
set
/* SPISKI_MEST.ID_xarakteristiki_gruza = NULL */
SPISKI_MEST.ID_xarakteristiki_gruza = NULL
where
/* SPISKI_MEST.ID_xarakteristiki_gruza = :old.ID_xarakteristiki_gruza */
SPISKI_MEST.ID_xarakteristiki_gruza = :old.ID_xarakteristiki_gruza;
end if;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tD_YLICI after DELETE on YLICI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- DELETE trigger on YLICI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* YLICI R/111 KLIENTI ON PARENT DELETE SET NULL */
update KLIENTI
set
/* KLIENTI.ID_ylici = NULL */
KLIENTI.ID_ylici = NULL
where
/* KLIENTI.ID_ylici = :old.ID_ylici */
KLIENTI.ID_ylici = :old.ID_ylici;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* YLICI R/102 SOTRUDNIKI ON PARENT DELETE SET NULL */
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_ylici = NULL */
SOTRUDNIKI.ID_ylici = NULL
where
/* SOTRUDNIKI.ID_ylici = :old.ID_ylici */
SOTRUDNIKI.ID_ylici = :old.ID_ylici;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_YLICI after UPDATE on YLICI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on YLICI
declare numrows INTEGER;
begin
/* YLICI R/111 KLIENTI ON PARENT UPDATE SET NULL */
if
/* :old.ID_ylici <> :new.ID_ylici */
:old.ID_ylici <> :new.ID_ylici
then
update KLIENTI
set
/* KLIENTI.ID_ylici = NULL */
KLIENTI.ID_ylici = NULL
where
/* KLIENTI.ID_ylici = :old.ID_ylici */
KLIENTI.ID_ylici = :old.ID_ylici;
end if;
/* YLICI R/102 SOTRUDNIKI ON PARENT UPDATE SET NULL */
if
/* :old.ID_ylici <> :new.ID_ylici */
:old.ID_ylici <> :new.ID_ylici
then
update SOTRUDNIKI
set
/* SOTRUDNIKI.ID_ylici = NULL */
SOTRUDNIKI.ID_ylici = NULL
where
/* SOTRUDNIKI.ID_ylici = :old.ID_ylici */
SOTRUDNIKI.ID_ylici = :old.ID_ylici;
end if;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tI_ZAJAVKI after INSERT on ZAJAVKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- INSERT trigger on ZAJAVKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* MARSHRUTI R/1 ZAJAVKI ON CHILD INSERT SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_marshruta = NULL */
ZAJAVKI.ID_marshruta = NULL
where
not exists (
select * from MARSHRUTI
where
/* :new.ID_marshruta = MARSHRUTI.ID_marshruta */
:new.ID_marshruta = MARSHRUTI.ID_marshruta
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SOTRUDNIKI R/4 ZAJAVKI ON CHILD INSERT SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_sotrudnica = NULL */
ZAJAVKI.ID_sotrudnica = NULL
where
not exists (
select * from SOTRUDNIKI
where
/* :new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica */
:new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SPISKI_MEST R/3 ZAJAVKI ON CHILD INSERT SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_spiska_mesta = NULL */
ZAJAVKI.ID_spiska_mesta = NULL
where
not exists (
select * from SPISKI_MEST
where
/* :new.ID_spiska_mesta = SPISKI_MEST.ID_spiska_mesta */
:new.ID_spiska_mesta = SPISKI_MEST.ID_spiska_mesta
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* KLIENTI R/1 ZAJAVKI ON CHILD INSERT SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_klienta = NULL */
ZAJAVKI.ID_klienta = NULL
where
not exists (
select * from KLIENTI
where
/* :new.ID_klienta = KLIENTI.ID_klienta */
:new.ID_klienta = KLIENTI.ID_klienta
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/
create trigger tU_ZAJAVKI after UPDATE on ZAJAVKI for each row
-- ERwin Builtin Sun Dec 02 20:14:20 2007
-- UPDATE trigger on ZAJAVKI
declare numrows INTEGER;
begin
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* MARSHRUTI R/1 ZAJAVKI ON CHILD UPDATE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_marshruta = NULL */
ZAJAVKI.ID_marshruta = NULL
where
not exists (
select * from MARSHRUTI
where
/* :new.ID_marshruta = MARSHRUTI.ID_marshruta */
:new.ID_marshruta = MARSHRUTI.ID_marshruta
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SOTRUDNIKI R/4 ZAJAVKI ON CHILD UPDATE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_sotrudnica = NULL */
ZAJAVKI.ID_sotrudnica = NULL
where
not exists (
select * from SOTRUDNIKI
where
/* :new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica */
:new.ID_sotrudnica = SOTRUDNIKI.ID_sotrudnica
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* SPISKI_MEST R/3 ZAJAVKI ON CHILD UPDATE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_spiska_mesta = NULL */
ZAJAVKI.ID_spiska_mesta = NULL
where
not exists (
select * from SPISKI_MEST
where
/* :new.ID_spiska_mesta = SPISKI_MEST.ID_spiska_mesta */
:new.ID_spiska_mesta = SPISKI_MEST.ID_spiska_mesta
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
/* ERwin Builtin Sun Dec 02 20:14:20 2007 */
/* KLIENTI R/1 ZAJAVKI ON CHILD UPDATE SET NULL */
update ZAJAVKI
set
/* ZAJAVKI.ID_klienta = NULL */
ZAJAVKI.ID_klienta = NULL
where
not exists (
select * from KLIENTI
where
/* :new.ID_klienta = KLIENTI.ID_klienta */
:new.ID_klienta = KLIENTI.ID_klienta
)
/* and ZAJAVKI.ID_zajavki = :new.ID_zajavki */
and ZAJAVKI.ID_zajavki = :new.ID_zajavki;
-- ERwin Builtin Sun Dec 02 20:14:20 2007
end;
/Offline
#18 18.12.07 18:03
Re: [Проблема]Связь таблиц в OracleXE
ндааа...вам не говорили что тригеры лучше отключить ибо при выполнении курсача они не нужны.Вообще попробуй когда в эрвине переводишь в скл отключи все галочки кроме table->create table referential integrity->primary key alter/pk
скрипт будет в раза 4 короче и будет рабочим.
В твоем скрипте в таблице города первичный ключ id_goroda а в таблице маршрутов он форейгн кей Все нормально.Только сейчас заметил
select g.doroda_otp
from marshruti m
inner join doroda_otp g
on (m.id_doroda_otp=g.id_goroda)
что за таблица doroda_opt не вижу ее в скрипте.
Может ты хотела написаьт так
select G.doroda_otp as Город_отпраления
from MARSHRUTI M, GORODA G
where M.doroda_otp = G.id_goroda
попробуй так.
Исправлено Unclead (18.12.07 18:05)
Offline
#19 18.12.07 18:11
#20 18.12.07 18:12
Re: [Проблема]Связь таблиц в OracleXE
ты выложила УЖАС, а не скрипт.... про не внимательность:
LuckyLove написал(а):
Есть таблица GORODA (ID_goroda, goroda)
и
таблица MARSHRUTI (ID_marshruta, ID_doroda_otp, ID_doroda_naz, Stoimostj_dostavki)
у тебя в скрипте:
CREATE TABLE GORODA (
ID_goroda INTEGER NOT NULL,
Nazvanie VARCHAR2(50) NOT NULL
);
CREATE TABLE MARSHRUTI (
ID_marshruta INTEGER NOT NULL,
ID_doroda_otpravlenija INTEGER NULL,
ID_doroda_naznachenija INTEGER NULL,
Stoimost_dostavki INTEGER NULL,
Z_d_tarif INTEGER NULL,
ID_goroda INTEGER NULL
);
прости за дотошность... но пока лишь это бросилось в глаза....
а нет!
вот ещё:
LuckyLove написал(а):
Написала запрос:
select g.doroda_otp
from marshruti m
inner join doroda_otp g
on (m.id_doroda_otp=g.id_goroda)
doroda_otp - этого у тебя в скрипте нет => не создаётся
Offline
#21 18.12.07 18:12
#22 18.12.07 18:14
#23 18.12.07 18:14
Re: [Проблема]Связь таблиц в OracleXE
select G.doroda_otp as Город_отпраления
from MARSHRUTI M, GORODA G
where M.ID_doroda_otpravlenija = G.id_goroda
могла бы и сама исправить...это как в книгах я специально ошибку внес чтоб ты ее нашла
я бы вообще назвал так столбцы
id_city_from -город отправления
id_city_where -место назначения
Исправлено Unclead (18.12.07 18:17)
Offline
#24 18.12.07 18:16
#25 18.12.07 18:17
#26 18.12.07 18:18
#27 18.12.07 18:19
#28 18.12.07 18:19
#29 18.12.07 18:24
Re: [Проблема]Связь таблиц в OracleXE
Скидываю скрипт GORODA и MARSHRUTi
Код::
CREATE TABLE "GORODA"
( "ID_GORODA" NUMBER(*,0) NOT NULL ENABLE,
"GORODA" VARCHAR2(50) NOT NULL ENABLE,
PRIMARY KEY ("ID_GORODA") ENABLE
)
CREATE TABLE "MARSHRUTI"
( "ID_MARSHRUTA" NUMBER(*,0) NOT NULL ENABLE,
"ID_DORODA_OTPRAVLENIJA" NUMBER(*,0),
"ID_DORODA_NAZNACHENIJA" NUMBER(*,0),
"STOIMOST_DOSTAVKI" NUMBER(*,0),
"Z_D_TARIF" NUMBER(*,0),
PRIMARY KEY ("ID_MARSHRUTA") ENABLE
)Такой подойдет? или я что-то не то написала?
Исправлено LuckyLove (18.12.07 18:25)
Offline
#30 18.12.07 18:30
#31 18.12.07 18:30
#32 18.12.07 18:33
#33 18.12.07 18:35
#34 18.12.07 18:36
#35 18.12.07 18:38
#36 18.12.07 18:40
#37 18.12.07 18:44
Re: [Проблема]Связь таблиц в OracleXE
если я не ошибся, то это должно работать:
select ID_doroda_otpravlenija from marshruti m,goroda g WHERE m.ID_doroda_otpravlenija=g.ID_goroda;
правда, написано без иннеров
или это не то, что ты хотела получить от своего запроса?
Исправлено /7ельмень (18.12.07 18:46)
Offline
#38 18.12.07 18:49
#39 18.12.07 18:52
#40 18.12.07 18:55
Re: [Проблема]Связь таблиц в OracleXE
CREATE TABLE GORODA (
ID_goroda INTEGER NOT NULL,
Nazvanie VARCHAR2(50) NOT NULL
);
CREATE TABLE MARSHRUTI (
ID_marshruta INTEGER NOT NULL,
ID_doroda_otpravlenija INTEGER NULL,
ID_doroda_naznachenija INTEGER NULL,
Stoimost_dostavki INTEGER NULL,
Z_d_tarif INTEGER NULL,
ID_goroda INTEGER NULL
);
select g.Nazvanie from goroda g,marshruti m WHERE m.ID_doroda_otpravlenija=g.ID_goroda;
Offline

