错误代码1241-操作数应包含1列

时间:2019-07-17 04:18:53

标签: mysql

我正在创建一个过程,而我遇到了这个过程。 有人知道如何解决这个问题吗?

delimiter $$
create procedure sp_cadastraAluno(
in nome varchar(150),
in chamada varchar(3),
in data date, 
in ra varchar(12),
in turma varchar(50),
in cpf varchar(14))
begin
    declare x int;
    set x = (select * from tb_coordenador inner join tb_professor
    on tb_coordenador.cd_coord = tb_professor.cd_coord
    inner join prof_turma on
    tb_professor.cd_prof = prof_turma.cd_prof
    inner join tb_turma on
    prof_turma.cd_turma = tb_turma.cd_turma 
    inner join tb_aluno on
    tb_turma.cd_turma = tb_aluno.cd_turma where nm_turma = turma and tb_professor.cd_cpf = cpf);

    insert into tb_aluno(nm_aluno, cd_chamada, dt_nascimento, cd_ra, cd_turma) values
    (nome, chamada, data, ra, x);
end $$

我需要插入tb_aluno中,为此,我需要提取已经插入tb_turma中的代码,但是会出现此错误。

1 个答案:

答案 0 :(得分:0)

不能将变量“ x”设置为多列。尝试删除select *并替换为所需的列。

Vocênãopode定义变种'x'comváriascolunas。替身卸妆液选择* e替代皮库拉纳语voc precisa。