Avatar billede compilos Nybegynder
08. marts 2001 - 17:48 Der er 6 kommentarer og
2 løsninger

Delete statement

Jeg har 2 tabeller - kunde & bil.

Jeg kunne godt tænke mig at slette kunden i kunde-tabellen hvor kundenr er 90. ligeledes slette i biltabellen hvor kundenr er 90. Hvordan gør man det i en Delete-statement.


Avatar billede knightdear Nybegynder
08. marts 2001 - 17:50 #1
delete from kunde-tabellen kun, bil-tabellen bil where kun.kundenr = 90 and where bil.kundenr = 90

Det skulle virke :o)
KnightDear
Avatar billede netsrac Praktikant
08. marts 2001 - 17:51 #2
DELETE FROM kunde WHERE kundenr = 90
DELETE FROM bil WHERE kundenr = 90
Avatar billede knightdear Nybegynder
08. marts 2001 - 17:52 #3
netsrac > hvorfor bruge længere tid end nødvendigt? ;o)
KnightDear
08. marts 2001 - 21:32 #4
Knightdear-> fordi din sætning ikke virker! Du kan ikke slette fra 2 tabeller på den måde i samme sætning (der kan heller ikke være 2 \'Where\' i samme sætning).

Netsrac\'s løsning er den mest umiddelbare.

Det, som kunne være smart (næsten obligatorisk) er at indføre referentiel integritet mellem de 2 tabeller og i samme åndedrag evt indføre kaskadevis sletning. Derved slettes alle tilhørende biler automatisk, når man sletter en kunde. Og man kan således nøjes med: \"DELETE FROM kunde WHERE kundenr = 90\".

Hvis der allerede er indført referentiel integritet mellem de 2 tabeller (men ikke kaskadevis sletning), vil Netsrac\'s løsning også give en fejl. Man skal nemlig køre de to sætninger i omvendt rækkefølge, da Bil-tabellen er på \'mange\'-siden af én-til-mange-relationen.

Compilos: kan du sige noget mere om hvorvidt der er referentiel integritet mellem de 2 tabeller? (ved du hvad det vil sige?)

/Thomas
Avatar billede compilos Nybegynder
10. marts 2001 - 23:58 #5
Thomas´s svar er umiddelbart det eneste der dur - Men jeg prøver lige igen -
Det må da være mulig at slette fra 2 tabeller i en Delete-statement. 
Der er ikke nogen relationer i databasen overhovedet.

SKAL THOMAS HA´POINT
Avatar billede netsrac Praktikant
11. marts 2001 - 00:01 #6
Et vildt gæt

DELETE FROM bil, kunde WHERE kundenr = 90
Avatar billede compilos Nybegynder
12. marts 2001 - 14:26 #7
Tak for hjælpen.
Avatar billede netsrac Praktikant
12. marts 2001 - 15:34 #8
Så lidt :-)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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