Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [trigger] rekurencja - usuwanie, wyzwalacz, usuwający obiekty podrzedne
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


Witam,
Struktura w tabeili wygląda tak (tree) (mssql 2005)
  1. id   |   parent_id    |   name
  2. ----------------------------
  3. 1    |  0               | Nazwa_1
  4. 2    |  1               | Nazwa_2
  5. 3    |  1               | Nazwa_3
  6. 4    |  2               | Nazwa_4


jak ładnie usunąć rekokrd o id = 1, tak by zostały usunięte rekordy podrzedne w strukturze ? Wstawianie do tabeli ograniczyłem wyzwalaczem, który sprawdza zagłębienie w strukturze, i wstawia rekord na max n+2 (lub zwraca błąd).
Można to zgrabnie zrobić ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Gomes
post
Post #2





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 22.06.2008

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


Przy tworzeniu tabeli trzeba pamiętać, żeby zadeklarować klucz obcy:

  1. CREATE TABLE nazwa_tabeli
  2. (
  3. id INTEGET AUTO_INCREMENT PRIMARY KEY,
  4. name VARCHAR(50) NOT NULL,
  5. parent_id INTEGER,
  6. FOREGIN KEY (parent_id) REFERENCES druga_tabela(parent_id) ON DELETE CASCADE
  7. ) ENGINE = InnoDB;


Tabele muszą być obsługiwane przez mechanizm InnoDB!!!
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: 14.10.2025 - 22:43