[ NetworkAdmin @ 09.04.2004. 15:56 ] @
Ovako imam tabela1 u njoj `id` i data paolja u koja su smjesteni podaci koji cesto trebaju a u tabela2 u njoj isto `id` koji odgovara `id` u tabela1 u dodatna polja u koja je smjesteno ostatak podataka za id iz tabela1 ali se oni jako rijetko koriste pa su izdvojeni u posebnu tabelu.

Sad neko je brisao odredjene rekorde iz tabela1 ali ne i iz tabela2 tako da sada u tabela2 ima sirochica koji vise.

Mogu li se oni obrisati jednim query?
MySQL je baza innodb tabele.
[ VRider @ 09.04.2004. 16:45 ] @
Delete from tabela2 where tabela2.id != tabela1.id;
Ovako nesto... Barem bi trebalo...
[ NetworkAdmin @ 09.04.2004. 18:19 ] @
jeste to bi obrisalo cjelokupnu tabela2
[ noviKorisnik @ 09.04.2004. 20:34 ] @
Code:
DELETE tabela2
FROM tabela2
  LEFT JOIN tabela1
  ON tabela2.id = tabela1.id
WHERE tabela1.id IS NULL
[ NetworkAdmin @ 09.04.2004. 23:10 ] @
E sad sam htio da postavim podpitanje, kako obezbjediti mehanizam kadse obrise nesto u tabeli1 da obrise i rekord u tabeli2 a da to ne mora misliti neki pametni programer i odmah obadvoje uraditi nego da to baza sama radi?
[ noviKorisnik @ 09.04.2004. 23:39 ] @
Citat:
Internet ogledalo, Broj 49
Aleksandar Babović: Baze podataka i Linux
PostgreSQL ili MySQL ?
ACID kompatibilnost
...
Konzistencija znači da nije moguće dilimično izvršenje transakcije. Ako se desi da jedan deo transakcije ne uspe, baza se vraća u prvobitno stanje. Primer je brisanje osobe iz, recimo, baze zaposlenih. Kada obrišemo jednu osobu, potrebno je da obrišemo i sve podatke o njoj iz ostalih tabela. Dobro konfigurisna baza ne dozvoljava brisanje osobe ako se ne obrišu svi podaci vezani za tu osobu.
...
konzistencija:
PostgreSQL - DA
MySQL - NE

U prevodu bi odgovor na tvoje pitanje bio - NE.

MySQL nema mogućnost definicije referencijalnih integriteta između tabela i uspostavljanje šeme relacija baze. Tako i nema informaciju koji su podaci iz različitih tabela u vezi pa ne može da obezbedi mehanizam zaštite brisanja pre provere postojanja zavisnih podataka ili, recimo, kaskadno brisanje vezanih podataka po zahtevu za brisanje iz vodeće tabele.

Bilo bi lepo da to, kao i neke druge stvari, funkcioniše u ovoj SQL varijanti, ali raduje me da MySQL ipak napreduje u svojim mogućnostima.

Zasad programer mora da zna da sastavi lep MySQL zahtev i putem programa vodi računa o vezama u bazi.