본문 바로가기
MySql

MySQL 프로 시저 # 1351의 MySQL 오류-뷰의 SELECT에 변수 또는 매개 변수가 포함됨

by 베이스 공부 2021. 2. 6.
반응형

PhpMyAdmin은 프로 시저 내에서 "id_jugador_IN"매개 변수를 허용하지 않습니다.

이것이 우리가 실행하는 절차입니다.

SET GLOBAL event_scheduler = 1;

use traviandatabase;

DELIMITER $$

DROP PROCEDURE IF EXISTS sp_monitoritzacio_jugador $$

CREATE PROCEDURE sp_monitoritzacio_jugador(IN id_jugador_IN INT(10))

BEGIN

    CREATE OR REPLACE 
    VIEW dades_ususari AS 
    SELECT j.nom AS jugador, j.sexe AS sexe, j.edat AS edat, j.correu AS correu, a.nom AS alianca, p.nom AS pais, c.nom_ciutat AS ciutat
    FROM jugador AS j
    JOIN alianca AS a
    JOIN pais AS p
    JOIN ciutat AS c
    ON j.id_jugador = id_jugador_IN
    GROUP BY id_jugador_IN;

END $$

DELIMITER ;

CALL sp_monitoritzacio_jugador(1);

그리고 이것은 "jugador"테이블입니다.

DROP TABLE IF EXISTS `jugador`;
CREATE TABLE `jugador` (
  `id_jugador` int(10) NOT NULL AUTO_INCREMENT,
  `id_raca` int(10) NOT NULL,
  `id_pais` int(10) NOT NULL,
  `id_alianca` int(10) DEFAULT '0',
  `nom` varchar(20) NOT NULL,
  `sexe` enum('Home','Dona') NOT NULL,
  `edat` int(10) NOT NULL,
  `correu` varchar(20) NOT NULL,
  PRIMARY KEY (`id_jugador`),
  KEY `jugador-alianca` (`id_alianca`),
  KEY `id_pais` (`id_pais`),
  KEY `id_raca` (`id_raca`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

따라서 동일한 오류가 표시되는 것을 멈추지 않습니다.

MySQL은 다음과 같이 말했습니다. 1351-View의 SELECT에는 변수 또는 매개 변수가 포함되어 있습니다.

 

해결 방법

 


편집 : 이것은 주석의 참조 내용입니다.


create function book_subject
returns varchar(64) as
return @book_subject;

create view thematical_books as
select title
, author
from books
where subject = book_subject();

 

참조 페이지 https://stackoverflow.com/questions/11292258

 

 

반응형

댓글