2015-07-04 4 views
0

Я хочу, чтобы хранить идентификатор последней измененной строки к переменному, а затем установить триггер для обновления несколько ячеек, код триггера:Получить идентификатор таблицы и хранить в переменной

BEGIN 
DECLARE MYROW_ID INT; 
DECLARE WITHDRAWAL DECIMAL(11,1); 
DECLARE USERNAME VARCHAR(10); 
SET MYROW_ID = SELECT id FROM withdrawals ORDER BY lastmodified DESC LIMIT 1; 
SET WITHDRAWAL = SELECT withdrawal FROM withdrawals WHERE id = MYROW_ID; 
SET USERNAME = SELECT username FROM withdrawals WHERE id = MYROW_ID; 
UPDATE `interests` SET `totalincome` = `totalincome` - 'WITHDRAWAL' 
WHERE 'username' = 'USERNAME' AND 'status' = 1; 
END 

MySQL дает свою ошибку для 5-я строка, Я назначаю неправильный тип данных, то есть MYROW_ID?
Как сохранить возвращаемое значение с SELECT into MYROW_ID?

ответ

1

Вы должны сделать это так:

SELECT id into MYROW_ID FROM withdrawals ORDER BY lastmodified DESC LIMIT 1; 
+0

Не работает, та же ошибка –

0

я просто положил заявление между скобками:

SET MYROW_ID = (SELECT id FROM withdrawals ORDER BY lastmodified DESC LIMIT 1); 
Смежные вопросы