mysql - 获取表的ID并存储在变量中

标签 mysql

我想将最后更新的行的id存储到一个变量中,然后设置一个触发器来更新一些单元格,触发器的代码:

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 返回的值存储到 MYROW_ID 中?

最佳答案

你应该这样做:

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

关于mysql - 获取表的ID并存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31218374/

相关文章:

python - 添加使用imdbpy加载imdb数据到mysql时捕获的外键异常

mysql - 在 SQL 列中查找重复项

java - Hibernate:无法连接到 MySQL 数据库

mysql - 无法在 OS X 上连接到 mysql

PHP/mysql 忽略带有 Asterix 字符的记录

Mysql2::Error: Expression #2 of ORDER BY 子句不在 GROUP BY 子句中并且包含非聚合列

Java MySql 连接

php - 注释部分的日期时间mysql

mysql - 存在 2 个 group by 条件时如何计算 mysql/sql 中的百分比

php - 查询在 php 上执行不正确,但在 mysql 上执行