Kako da brisanje podataka iz jedne tabele inicira brisanje u drugoj

  • 2 odgovora
  • 2.786 pregleda
Kako da brisanje podataka iz jedne tabele inicira brisanje u drugoj 04.04.2007. u 18:41 · pre 238 meseci #1
Evo ovako:
Imam dve tabele od interesa i sve ovo radim u SQL Serv. Express:
create table Lista
(
ID int primary key,
Naziv nvarchar(50) not null,
UserName nvarchar(20) not null
)

i

create table ListEntry
(
Ime nvarchar(20) not null,
Prezime nvarchar(20) not null,
Email nvarchar(50) primary key,
...
ListID int foreign key references Lista(ID),
)

Kako da napravim da brisanje jednog elementa iz tabele lista automatski obrise sve elemente iz tabele ListEntry.
Ili receno na drugi nacin: Kako da brisnje liste automatski obrise sve elemente liste?

Pretpostavljam da je rec o nekakvoj stored proceduri ili triger-u, ali posto bas i nemam mnogo pojma o tome bilo bi lepo da mi neko pomogne tako sto ce da predlozi resenje i malko detaljnije obrazlozi ili me uputi na neki link.
Unapred hvala!
Dragan

Re: Kako da brisanje podataka iz jedne tabele inicira brisanje u drugoj 04.04.2007. u 19:02 · pre 238 meseci #2
Code:

-- lista
create table Lista
(
ID int not null,
Naziv nvarchar(50) not null,
UserName nvarchar(20) not null

constraint pk_lista primary key (id)
);

create table ListEntry
(
id int not null
Ime nvarchar(20) not null,
Prezime nvarchar(20) not null,
Email nvarchar(50) primary key,
...,
constraint fk_ListEntry foreign key (id)
 references lista (id)
  on update cascade
  on delete cascade
)

Ostvaruje se referencijalni integritet, a "cascade" omogućuje i ažuriranje i brisanje kaskadno.

BTW, pišem iz glave, ali to je to, moraš samo malo tabele srediti, mislim na drugu, da li ćeš imati još PK (složeni - npr. id, rb!?!).
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme