[英]MySql error : Result consisted of more than one row
我有錯誤: Result consisted of more than one row but i can't find out it.
條目id_user在其表中只有一條記錄。
步驟:
CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_user_deep`(id_user int(11))
BEGIN
declare nome_loc varchar(45);
declare cognome_loc varchar(45);
select nome,cognome
into nome_loc,cognome_loc
from user
where id_user=id_user;
delete from Radius.radcheck where username in (
select mac_address from machine where id_user =id_user);
delete from Radius.radreply where username in (
select mac_address from machine where id_user =id_user);
delete from machine_ip where id_machine in (
select id_machine from machine where id_user=id_user);
delete from machine where id_user = id_user;
delete from document where id_user=id_user;
delete from user where id_user=id_user;
insert into log_generic values(
NULL,
'USER',
'Delete User Deep',
(select concat ('User: ',id_user,' Name: ',cognome_loc,' Prename: ',nome_loc)),
now());
END
問題出在以下語句中:
select nome,cognome
into nome_loc,cognome_loc
from user
where id_user=id_user;
如果存在多行,將返回錯誤。 錯誤記錄在這里 。
這是因為參數名稱與列名稱相同。 id_user
指的是比較兩邊的列。
查詢應如下所示:
select nome, cognome
into nome_loc, cognome_loc
from user
where id_user = param_id_user;
始終在參數和變量名前加上一些前綴,以區別於列名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.