簡體   English   中英

MySql錯誤:結果由多個行組成

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM