![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 3 Dołączył: 28.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod DROP TRIGGER IF EXISTS Configuration_Trigger_Update; delimiter $$ CREATE TRIGGER Configuration_Trigger_Update AFTER UPDATE ON configuration FOR EACH ROW BEGIN INSERT INTO `logs`(`admins_id`, `message`, `table_name`, `type`, `date`) VALUES( 1, CONCAT('Update: Zmienna o kluczu ', OLD.configuration_id,', nowy klucz: ', NEW.configuration_id,', wartosc ', OLD.wartosc, ', typ: ', OLD.`type`), 'configuration', '2', NOW() ); END $$ DELIMITER; Po wywolaniu update'a w tabeli configuration do tabeli logs wstawiany jest rekord, ktore kolumne message ma pusta. Udalo mi sie dojsc, ze po usunieciu fragmentu Kod OLD.`type` rekord wstawiany jest normalnie. Domyslam sie, ze chodzi tu o jakies slowo kluczowe MySQL-a, jednak zwykle inserty i update'y dzialaja normalnie.... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 162 Pomógł: 26 Dołączył: 19.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się (ale nie moge teraz sprawdzić) to funkcja CONCAT zwraca pusty ciąg jeżełi chociaz jeden z jej argumentów jest null.
W twoim przypadku prawdopodobnie OLD.type jest null'em. rozwiązaniem powinno być użycie CONCAT_WS, które jest odporne na null'e. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 3 Dołączył: 28.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dokladnie o to chodzilo, bardzo dziekuje
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:45 |