I'm really bad at SQL, but I'm trying to keep my database simple and minimalistic as possible. Not duplicating values but using references and id's instead.
Now after inserting a query I get error
1442 - Can't update table 'signed' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
Query can be inserted when the trigger is disabled. But my query is only reading from table 'users' so there should not be a conflict. I read something about deadlock - the query is locking table while using it or something like that and therefore a trigger cannot update a row? Ideas how could I achieve this?
I simplified my query so only important things are there.
Query:
INSERT INTO signed (time_of_start, player)
SELECT time_of_game_id, users.user_id
FROM time_of_game, users
WHERE time_of_game.time_of_start = "2017-02-01 12:00:00"
AND users.steamid = "1234567890123456";
Trigger:
CREATE TRIGGER `payment_for_joining`
AFTER INSERT ON `signed`
FOR EACH ROW
UPDATE users
SET users.credit = users.credit-1
WHERE users.user_id = NEW.player