这个mysql函数有什么问题?
当我运行这个函数时这个mysql函数有什么问题?,mysql,Mysql,当我运行这个函数时 CREATE PROCEDURE alege() BEGIN declare v_prenumeNou VARCHAR(15); declare v_numeRandom INTEGER(10); declare v_prenumeRandom INTEGER(10); declare v_idCutremurRandom INTEGER(10); set v_numeRandom =
CREATE PROCEDURE alege()
BEGIN
declare v_prenumeNou VARCHAR(15);
declare v_numeRandom INTEGER(10);
declare v_prenumeRandom INTEGER(10);
declare v_idCutremurRandom INTEGER(10);
set v_numeRandom = 1 + CEIL ( RAND() * 50 );
set v_prenumeRandom = 1 + CEIL ( RAND() * 50 );
set v_idCutremurRandom = 1 + CEIL ( RAND() * 50 );
select prenume into v_prenumeNou from (SELECT prenume, rownum as v_rn from voluntari) where v_rn=v_prenumeRandom;
select nume into v_numeNou from (SELECT nume, rownum as v_rn from voluntari) where v_rn=v_numeRandom;
v_idPersoanaNou := v_idPersoanaNou + 1;
INSERT INTO voluntari (IDCUTREMUR, IDPERSOANA, NUME, PRENUME)
VALUES (CONCAT('C',IFNULL(v_idCutremurRandom, '')), CONCAT('V',IFNULL(v_idPersoanaNou, '')) , v_numeNou, v_prenumeNou);
END;
我有这个错误
[Err]1248-每个派生表都必须有自己的别名
我怎样才能解决这个问题 必须为select into语句中的每个子查询添加别名:
select prenume
into v_prenumeNou
from (SELECT prenume, rownum as v_rn
from voluntari) t1 <-----------
where v_rn=v_prenumeRandom;
select nume
into v_numeNou
from (SELECT nume, rownum as v_rn
from voluntari) t1 <------------
where v_rn=v_numeRandom;
尝试这样做,只需更改from子句的别名每个派生表都必须有一个别名:
CREATE PROCEDURE alege()
BEGIN
declare v_prenumeNou VARCHAR(15);
declare v_numeRandom INTEGER(10);
declare v_prenumeRandom INTEGER(10);
declare v_idCutremurRandom INTEGER(10);
set v_numeRandom = 1 + CEIL ( RAND() * 50 );
set v_prenumeRandom = 1 + CEIL ( RAND() * 50 );
set v_idCutremurRandom = 1 + CEIL ( RAND() * 50 );
select prenume into v_prenumeNou from (SELECT prenume, rownum as v_rn from voluntari) AS A where v_rn=v_prenumeRandom;
select nume into v_numeNou from (SELECT nume, rownum as v_rn from voluntari) AS B where v_rn=v_numeRandom;
v_idPersoanaNou := v_idPersoanaNou + 1;
INSERT INTO voluntari (IDCUTREMUR, IDPERSOANA, NUME, PRENUME)
VALUES (CONCAT('C',IFNULL(v_idCutremurRandom, '')), CONCAT('V',IFNULL(v_idPersoanaNou, '')) , v_numeNou, v_prenumeNou);
END;