Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Kasowanie rekordów z tabeli pseudo-relacyjnej, Prosta sprawa ale nigdzie nie znalazłem...
Adi32
post 28.08.2012, 10:14:24
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Muszę przerobić bazę danych z tabelami pseudo-relacyjnymi na normalne.
Niestety nie da się tego zrobić puki nie skasuje błędnych wpisów które odnoszą się do nieistniejących kluczy.

Wiem, że jest wiele sposobów na szybkie zrobienie tego, ale zastanawiam się, czy jest jakiś "sprawdzony" ogólny sposób.

Tu przykład kodu który kasuje zerową ilość rekordów:

  1. DELETE FROM zamowienie_produkt WHERE (SELECT id FROM zamowienie z WHERE zamowienie_produkt.id_zamowienie = z.id ) IS NULL


edit:
Czytam temat i nie wiem czy jest w pełni zrozumiały...

Chodzi o skasowanie wszystkich rekordów z tabeli zamowienie_produkt w których kolumna id_zamowienie odnosi się do nieistniejącego rekordu, innymi słowy nie istnieje zamówienie o takim id bo ktoś skasował a nie wziął pod uwagę że zostaną błędne wpisy w tabeli zamowienie_produkt.

Ten post edytował Adi32 28.08.2012, 10:21:01


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
mmmmmmm
post 28.08.2012, 11:25:19
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  1. DELETE FROM zamowienie_produkt WHERE id IN (SELECT zp.id FROM zamowienie_produkt zp LEFT JOIN zamowienie z ON z.id=zp.id_zamowienie WHERE z.id IS NULL)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:41