我已经创建了一个名为calculate_marks(user_id)的函数,它可以正常运行, 但是当我插入插入语句时,它将继续在mysql中运行并且没有响应,有人知道这是什么问题吗?
INSERT INTO `marks`
(`marks_user_id`, `marks_addtime`, `marks_amount`
)
SELECT `user_id`, UNIX_TIMESTAMP(),
(SELECT calculate_marks(`user_id`))
FROM `user`
WHERE `user`.`user_status` = 'A';
如果我运行它,它将返回我想要的结果
SELECT `user_id`, (SELECT calculate_marks(`user_id`))
FROM `user`
WHERE `user`.`user_status` = 'A';
答案 0 :(得分:2)
您正在尝试相关的子查询,没有适当的别名。您不需要使用子查询来计算标记。请尝试以下操作:
INSERT INTO `marks`
(`marks_user_id`, `marks_addtime`, `marks_amount`
)
SELECT `user_id`, UNIX_TIMESTAMP(), calculate_marks(`user_id`)
FROM `user`
WHERE `user`.`user_status` = 'A';