Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Usuwanie z bazy
Poczatkujacy_Web
post
Post #1





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Co zrobic przy tworzeniu bazy tak aby po usunieciu danego elementu usowalo sie wszystko co z nim zwiazane?

przyklad:

baza: firmy
tabele: firmy, kategorie, powiazania

kasuje dana firme a ona znika z powiazan.

jak to zrobic?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Nie chodzi o stworzenie nowej tabeli, a o wykonanie takiego powiązania za pomocą kluczy obcych, aby w składni tworzącej tabele móc dodać klauzulę on delete cascade i zwyczajowo robi się to na samym początku, tj. tworząc strukturę bazy danych. Teraz, jeżeli posiadasz dwie tabele, z której przynajmniej jedna posiada klucz obcy, to możesz wykonać następujące czynności *):
(za X oznaczam docelową tabelę, na której pracujemy)
1)
  1. SHOW CREATE TABLE X
- pokaże Ci polecenie sql, które utworzyło tabelę
2) teraz zmodyfikuj polecenie usuwając klucz obcy:
  1. ALTER TABLE X DROP FOREIGN KEY <foreign KEY name>

3) teraz dodaj klucz z powrotem tym razem podając klauzulę on delete cascade:
  1. ALTER TABLE X ADD FOREIGN KEY(POLE_KLUCZA) REFERENCES REFERENCJA(POLE_REFERENCJI) ON DELETE cascade


voila
Literatura:
1)
2)

*) podane czynności wymagają posiadania klucza obcego w tabeli określonej jako X.


Ten post edytował darko 26.08.2012, 20:53:36
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 19:37