Podczas insertowania danych do tabeli użytkowników wyrzuca mi następujący błąd:
Kod
Subquery returns more than 1 row [ INSERT INTO `users` (.........) VALUES (.....)
Samo zapytanie INSERT nie posiada w sobie żadnych elementów podzapytań - ostatnio próbowałem swoich sił w budowaniu triggerów i tutaj podejrzewam, że błąd leży.
W tej chwili mam zdefiniowane trzy triggery: dwie akcje przy INSERT, jedna przy DELETE.
CREATE TRIGGER user_registertime before INSERT ON users FOR each row begin IF ( new.date_registered IS NULL OR new.date_registered = 0 ) then SET new.date_registered = UNIX_TIMESTAMP(); end IF; end; CREATE TRIGGER user_updateconfig after INSERT ON users FOR each row begin IF ( SELECT value FROM `configuration` WHERE variable = 'EMAIL_USER_ACCOUNT_ACTIVE' < '1' ) then UPDATE `configuration` SET value = (value + 1) WHERE variable = 'COUNT_ALL_USERS'; end IF; end; CREATE TRIGGER user_deleteconfig after DELETE ON users FOR each row begin UPDATE `configuration` SET value = (value - 1) WHERE variable = 'COUNT_ALL_USERS'; end;
Zastanawiam się nad tą regułką pobierania z tabeli "configuration" - czy dobrze to zrealizowałem - ogólnie na sto procent zwracany jest jeden rekord - value zwraca cyfrę - zero lub jedynkę.
Gdzie może być błąd?