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 = 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 - Every derived table must have its own alias

我该如何解决这个问题?

最佳答案

您必须为 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;

关于mysql - 这个mysql函数有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44352405/

相关文章:

php - 如何从 3 个 mysql 表中获取数据?

mysql - Centos5 yum安装mysql-devel.x86_64错误

mysql - 数据库中未创建表

php - 获取变量数组的数据库数据

mysql - 2 带 WHERE 子句的 LEFT JOIN 不起作用

mysql - 我如何使用 join 编写等效的 sql 查询?

mysql - 从 2 个表中以及指定日期之间选择最新日期

php - mysql插入查询不起作用

mysql NOW() 定义时间

php - 尝试获取一组数据以在一封电子邮件而不是多封电子邮件中发送