Avatar billede hermandsen Juniormester
03. august 2004 - 16:06 Der er 2 kommentarer og
1 løsning

Slette fra flere tabeller i samme query

Hej Eksperter!

Jeg skal slette data fra flere tabeller i samme query.
Helt umiddelbart ville jeg jo tro at man kunne bruge UNION:

DELETE FROM tabel1 WHERE id=1 UNION
DELETE FROM tabel2 WHERE id=1

Den gik dog ikke. Så tænkte jeg at man måske kunne vælge data fra begge tabeller:

DELETE FROM tabel1 AS t1, tabel2 AS t2 WHERE t1.id=1 AND t2.id=1

Den går dog heller ikke!!

I følge MySQL-dokumentationen omkring DELETE-syntaksen (http://dev.mysql.com/doc/mysql/en/DELETE.html), så er er det vist først muligt at slette fra flere tabeller i version 4.0.0 og frem, af MySQL. Dog har jeg kun en version 3.23.49 til rådighed!

Findes der en omvej, eller gør jeg noget forkert i min syntaks?

//hermandsen
Avatar billede arne_v Ekspert
03. august 2004 - 21:13 #1
MySQL tillder i nogen sammenhænge at man fyrer flere SQL sætninger af i
et hug som:

"DELETE FROM tabel1 WHERE id=1; DELETE FROM tabel2 WHERE id=1;"

Du kan jo prøve omd et virke i PHP/Delphi/hvad du nu bruger.

Ellers er en "rigtig prof" løsning jo at bruge 2 DELETE statements
men putte dem i 1 transaction, så enten udføres begge eller ingen.

Transactions i MySQL kræver InnoDB tabeller - MyISAM tabeller understøtter
ikke transaktioner.
Avatar billede hermandsen Juniormester
04. august 2004 - 00:18 #2
Den gik desværre ikke!! :(

Synes måske også det er lidt af et overkill med transactions... Om ikke andet må jeg bare få vores web-admin til at få opgraderet alt det her gamle skidt vi efterhånden ligger inde med... Gammel Apache, gammel MySQL, gammel PHP osv.

Der må jo også være en grund til at de udsender opdateringer!! ;)
Avatar billede hermandsen Juniormester
11. august 2004 - 22:45 #3
Det blev løst med 2 queries, too bad!! :(
Må se at få opdateret det gamle skrammel!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester