Autor Zpráva
Prochy
Profil
Zdravím,

chci se zeptat, je možné pomocí Triggeru vložit vždycky do tabulky logy, nový řádek s tím, kdy se DELETE provedlo? Teď se mi objevilo na hostingu, že se tam smázly nějaký data, ale nikdo si není vědomej, že by to udělal. Mazat z aplikace je možné pouze z Administračního rozhraní, kam mám přístup jen já + jeden člověk. Funkci DELETE FROM clients je pouze v tom skriptu, který je na admin rozhraní. Takže bych potřeboval zjistit, jestli se nemuže smazat klient ještě jinde. Logování v Admin rozhraní mám. O sql inject by se snad jednat nemělo (doufám). Takže prostě, když se provede DELETE na tabulkou clients, tak aby se TRIGGREM provedl zápis do logs s ID smazaného záznamu a případně čas. Je to možné nějak udělat? Doufám, že tím triggrem by to mohlo jít.

Děkuji
Kajman
Profil
Něco takového...
CREATE TRIGGER `clients_tr_ad` AFTER DELETE ON `clients`
FOR EACH ROW
BEGIN
INSERT INTO `logs` (`info_table`, `info_op`, `info_id`, `date`) VALUES ('clients', 'delete', OLD.id, now());
END;

A pokud to nebudete dělat v klientu, co má podporu triggerů, tak nezapomeňte změnit delimiter.
Prochy
Profil
Díky moc, funguje super. Ono se to nakonec všechno vysvětlilo, jelikož došlo k popletení dvou jmen, ale i tak ten trigger se bude hodit.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: