19. december 2001 - 10:58Der er
18 kommentarer og 1 løsning
slette poster i tabel
Hej Lige en lille let en: Jeg har lavet en forespørgsel, der fint fungerer og udvælger de poster jeg gerne vil have. Disse poster vil jeg gerne slette men jeg får fejl \"could\'nt delete from specified tables.\" Jeg er godt nok ikke nogen haj til sql, så det kunne jo være at en af jer kunne se hvad der var galt.
DELETE tabel.*, tabel.name FROM tabel INNER JOIN [tabel 2] ON (tabel.Date = [tabel 2].Date) AND (tabel.name = [tabel 2].name) WHERE (((tabel.name)=\"AKF\"));
Har desværre travlt lige nu men er tilbage imorgen og uddeler en ekstra stor for at i har ventet lidt på pointene:)
Jeg var ikke lige opmærksom på det med nøglerne. De var forskellige. Nu har jeg fjernet nøglerne så der ikke er nogen nøgler i nogen tabel. Og så får jeg fejlmeddelelsen \"Operation must use an updateable query.\"
mugs;terry: Jeg har brug for min join, da der er mange flere poster med name=AKF
cyaeqga > Jeg er på vej til arbej, og har ikke megen tid. Men et skud i tågen vil være at se på JOIN-egenskaben Kaskadevis sletning. Men jeg kan ikke lige i farten huske konsekvenserne af at bruge det, bortset fra, at du skal være 110% sikker på hvad du laver.
Jeg har helt glemt at nævne det, men forespørgslen virker fint som almindelig udvælgelsesforespørgsel. Det er først nå jeg vil slette at problemet kommer. Hvad menes med kaskadevis sletning?
Den kan fint virke som udvælgelse, men hvis du kører den i Access, så får du ikke lov at redigere i resultatsættet, og du kan ikke tilføje nye poster (der er ikke en række med * i venstre side).
Du har ret der ikke nogen indtastnigsmulighed. Det hænger vel sammen med \"updatable query\", jeg ved bare ikke hvor jeg skal ændre egenskaben? Det tog lidt lang tid for jeg kom til at starte en forkert foresp. som tog ti min.
Om det er et updatable query afhænger af indeks på de tabeller, du joiner. Der skal være unikke indeks på - prøv dig lidt frem til du får et updatable query
Jeg fandt ikke ud af hvad problemet helt korrekt var men jeg har løst det. Jeg hentede alle \"AKF\" ud af tabellen og ind i en ny tabel: \"akf\" Hvor jeg lavede en ny forespørgsel, hvor det ikke var nødvendigt at have en WHERE... Dette lykkedes. Jeg havde inden prøvet at sætte alle nøgler til at være ens i tabellerne. Men det var åbenbart ikke nok for jeg fik samme fejl. Jeg har også prøvet med WHERE name=\"x\" på den nye foresp. og det virker stadig fint.
Så nu tager jeg og sletter alle AKF og indsætter mine redigerede akf.
DELETE akf.* FROM [tabel 2] INNER JOIN akf ON ([tabel 2].Date = akf.Date) AND ([tabel 2].name = akf.name);
Så benny du får point, selvom det ikke var en løsning så gjorde du mig opmærksom på det med nøglerne. Hvorfor skal der egentlig være disse indeks?
De indeks, der skal være der, skal være unikke på i hvert fald den ene side. Det er for, at Access kan oprette poster i begge tabeller uden, at den ene tabel får herreløse poster i den anden.
Synes godt om
Ny brugerNybegynder
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.