Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PostgreSQL] - delete error?
milk
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.08.2010

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


HEY!
Ponizej wklejam błąd jaki otrzymuje podczas próby usunięcia 1 rekordu z tabeli news.
Kazdy news moze byc komentowany -> w tym przypadku ten news posiada komentarze.

Jak jednym zapytaniem usunąć news`a z tabeli news oraz wszystkie powiazane z nim komentarze?

Czy ten błąd będzie występował tylko w PostgreSQL czy w mySQL również?

  1. [b]Błąd SQL:
  2. [/b]
  3. ERROR: UPDATE OR DELETE ON TABLE "news" violates FOREIGN KEY constraint "comments_id_news_fkey" ON TABLE "comments"
  4. DETAIL: KEY (id_news)=(6) IS still referenced FROM TABLE "comments".
  5.  
  6. W poleceniu:
  7. DELETE FROM news WHERE id_news=6;


PROSZĘ O POMOC!
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Z posgre u mnie krucho, ale komunikat bledu wyraźnie mówi, że masz powiązania tabeli comments z tym newsem. Masz zalożone takie powiązania, ze baza nie pozwala ci usunac newsa, który ma komentarze. Musisz najpierw usunac komentarze a potem newsa.
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Najlepiej gdybyś w więzach integralności w tabeli comments dla kolumny id_news (chyba tak się nazywa) ustalił ON DELETE CASCADE. Wówczas w przypadku usuwania newsów automatycznie usuną Ci się komentarze do nich przypisane.

Na razie wykonaj to sobie dwoma zapytaniami (jak sugeruje ~nospor), czyli:
  1. DELETE FROM comments WHERE id_news=6;
  2. DELETE FROM news WHERE id_news=6;
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 Aktualny czas: 22.08.2025 - 05:31