Avatar billede bsp Nybegynder
24. september 2002 - 20:57 Der er 16 kommentarer og
1 løsning

Hvad er der galt med denne delete

Jeg prøver at slette data i to tabeller med denne forespørgsel..

DELETE FROM Linie, kursus WHERE linie.LinieID = kursus.LinieID AND kursus.uge = 43;

Men den siger der er fejl i den..

hvad kan dette være?????
Avatar billede ztyxx Nybegynder
24. september 2002 - 20:59 #1
DELETE er så vidt jeg ved kun til at slette hele tabeller, hvis du kun skal slette i kolonner skal du bruge UPDATE
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:01 #2
og dog, lidt fra manualen:

Deleting Rows from Related Tables

As MySQL doesn't support sub-selects or use of more than one table in the DELETE statement, you should use the following approach to delete rows from 2 related tables:


1.     SELECT the rows based on some WHERE condition in the main table.

    2.     DELETE the rows in the main table based on the same condition.

    3.     DELETE FROM related_table WHERE related_column IN (selected_rows).

If the total number of characters in the query with related_column is more than 1,048,576 (the default value of max_allowed_packet, you should split it into smaller parts and execute multiple DELETE statements.  You will probably get the fastest DELETE by only deleting 100-1000 related_column id's per query if the related_column is an index.  If the related_column isn't an index, the speed is independent of the number of arguments in the IN clause.
Avatar billede bsp Nybegynder
24. september 2002 - 21:07 #3
Jeg kan godt se hvad man skal, men kan ikke rigtig finde en 'taktik' til at stille det rigtig op... :0)

Kan du komme med et eksempel...
Avatar billede morw Nybegynder
24. september 2002 - 21:08 #4
Som der står du skal gøre det af 2 omgange.

DELETE kan kun indeholde 1 tabel
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:09 #5
du skal bare lave to querys, en til hver DELETE i stedet for at køre dem i den samme
Avatar billede bsp Nybegynder
24. september 2002 - 21:12 #6
Hvordan kan jeg dette..

Tabellen Linie består af:
LinieID og Navn

Tabellen Kursus består af:
LinieID, Uge og en masse andre uvedkomne i denne situation
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:13 #7
altså du vil have slettet linie.LinieID = kursus.LinieID i tabellen Linie
og kursus.uge = 43 fra tabellen kursus??
Avatar billede bsp Nybegynder
24. september 2002 - 21:16 #8
Jeg skal hvae slettet hele linien i Linie

og skal have slettet alt i Kursus som indeholder den linieID som er magen til den der skal slettes i Linie men bare i en bestemt uge
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:43 #9
sorry var lige væk, men her er dine querys, en for hver tabel

DELETE FROM Linie WHERE linieID=linieID
DELETE FROM kursus WHERE linieID='linieID' AND Uge=43
Avatar billede bsp Nybegynder
24. september 2002 - 21:48 #10
Det virker med den at slette linie i Linie...

Men den slettede ingenting i Kursus
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:52 #11
kan det være at der bare er fejl i den måde jeg har skrevet på, store/små bogstaver eller stavefejl, prøv at sætte ' er om 43
DELETE FROM kursus WHERE linieID='linieID' && Uge='43'
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:53 #12
måske stort K i Kursus
DELETE FROM Kursus WHERE linieID='linieID' AND Uge='43'
Avatar billede bsp Nybegynder
24. september 2002 - 21:55 #13
Jeg prøver at kigge videre på det i morgen..

Tak for at du har hjulpet mig lidt videre på sagen..

lav lige en svar så du kan få point
Avatar billede ztyxx Nybegynder
24. september 2002 - 21:58 #14
oki, men vent med point til det virker :-)
Avatar billede bsp Nybegynder
24. september 2002 - 21:58 #15
oki..
Avatar billede ztyxx Nybegynder
26. september 2002 - 22:26 #16
virker det nu??
Avatar billede ztyxx Nybegynder
29. september 2002 - 16:59 #17
takker for point :-)
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