Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Trigger na wszystkie tabele w bazie
Forum PHP.pl > Forum > Bazy danych > MySQL
skowron-line
Witam czy jest możliwość w jakiś prosty sposób odwołać się w triggerze do wszystkich tabel w bazie danych questionmark.gif
  1. CREATE TRIGGER trg_name AFTER INSERT ON // co tu wpisać żeby na wszystkie tabele zadziałał.

a może się nie da czegoś takiego zrobić questionmark.gif
Mchl
Się nie da. Każdy jeden trigger musi mieć przypisaną dokładnie jedną tabelę której dotyczy.

A co chciałbyś zrobić?
skowron-line
Chcę po dodaniu określonego rekordu do danej tabeli usunęło z każdej innej rekord o danym ID.
magnus
Czyli mając np. 5 tabel A,B,C,D,E chciałbyś aby po dodaniu rekordu do A usuwało z B,C,D,E... po dodaniu do B usuwało z pozostałych czterech itd.questionmark.gif
To może być ciężko faktycznie zautomatyzować - jedynie ręcznie triggery dla każdej tabeli robić (na szczęście będą, a przynajmniej powinny być bardzo podobne).

Ale zdradź jeszcze do czego takie egzotyczne rozwiązanie... może da się to zrobić inaczej/prościej.
skowron-line
@magnus chciałem żeby było to uniwersalne dla każdej bazy danych.
Mchl
Możesz spróbować napisać jakąś sprytną procedurę skłądowaną i wywoływać ją z triggera.
skowron-line
A czy w procedurach można operować na wynikach zapytań questionmark.gif? To bym sobie
  1. SHOW TABLE db_name

tak zrobił.
magnus
Teoretycznie powinno coś się udać. Np. coś w stylu:
Kod
SET @tabela := (SELECT * FROM tblname);

ale czy to zadziała z SHOW - nie mam pojęcia. I jak dalej operować na takiej tabeli też nie bardzo wiem.
Mchl
Prędzej SELECT z information_schema.tables
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.