Avatar billede trp79 Nybegynder
16. september 2004 - 08:46 Der er 3 kommentarer og
1 løsning

DELETE syntax

Hejsa
Jeg sidder lige og roder lidt med DELETE syntaxen. Jeg har oprette understående tabeller, og putter data i dem.

CREATE TABLE EMP (  ename VARCHAR(50) NOT NULL, salary INTEGER, deptnr INTEGER, PRIMARY KEY(ename));

CREATE TABLE DEPT (  deptnr INTEGER NOT NULL, deptname VARCHAR(50), PRIMARY KEY(deptnr));

Kan det passe, at hvis jeg vil fyre en hel afdeling, så skal det gøres sådan her:
DELETE FROM emp,dept USING emp, dept WHERE dept.deptnr = 3 AND emp.deptnr = 3;
Det jeg mener er, at det jo ikke er sikkert, at man ved, hvilket deptnr en afdeling har - men at man bare har navnet. Men hvis man vil slette alle ansatte i en afdeling ud fra afdelingsnavnet, så kræver det vel en subquery(som mysql 4.0 ikke understøtter)? Eller tager jeg helt fejl?

Mvh
Torben
Avatar billede arne_v Ekspert
16. september 2004 - 09:25 #1
Skift fra MyISAM tabeller til InnoDB tabeller, lav en foreign
key i EMP som peger på DEPT, sæt cascade delete.

Så sletter du bare afdelingen i DEPT, så ryger de relevante records i EMP
automatisk.
Avatar billede arne_v Ekspert
16. september 2004 - 09:26 #2
Hvis du ikke vil den vej, så tror jeg at 1 x SELECT og 2 x DELETE er det
nemmeste.
Avatar billede trp79 Nybegynder
16. september 2004 - 09:28 #3
Det er super Arne, jeg prøver lige at kigge lidt(læse) på MyISAM osv. Smid du bare et svar.

Mange tak for hjælpen, mvh
Torben
Avatar billede arne_v Ekspert
16. september 2004 - 09:34 #4
.
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