【发布时间】:2015-12-30 12:39:28
【问题描述】:
我正在尝试创建一个过程(在 phpMyAdmin 中称为例程)并且目前有这个查询:
BEGIN
INSERT INTO `users` (`username`, `password`, `email`, `user_role_id`,` date_registered`)
VALUES (_username, _password, _email, (SELECT `ID` FROM `roles` WHERE `role_name` = _role) , _date);
END;
但这不起作用,我尝试将变量声明为 role_ID 并且这也不起作用,有人可以帮我解决这个问题吗?
注意
您看到的参数(以下划线 (_) 开头)都是 phpMyAdmin 例程创建器中使用的 IN 参数
编辑
我尝试过的其他代码是这样的:
BEGIN
DECLARE role_id AS/*=*/ (SELECT `ID` FROM `roles` WHERE `role_name` = _role); /* tried both AS and = */
INSERT INTO `users` (`username`, `password`, `email`, `user_role_id`, `date_registered`)
VALUES (_username, _password, _email, role_id, _date);
END;
还注意到DECLARE有一个小错误,把上面的代码改成:
BEGIN
DECLARE @role_id ;
SET @role_id = (SELECT `ID` FROM `roles` WHERE `role_name` = _role);
INSERT INTO `users` (`username`, `password`, `email`, `user_role_id`, `date_registered`)
VALUES (_username, _password, _email, @role_id, _date);
END;
但还是没有运气
【问题讨论】:
标签: mysql stored-procedures phpmyadmin subquery routines