반응형
이 SQL 파일이 있습니다.
USE mydb;
DROP PROCEDURE IF EXISTS execSql;
DELIMITER //
CREATE PROCEDURE execSql (
IN sqlq VARCHAR(5000)
) COMMENT 'Executes the statement'
BEGIN
PREPARE stmt FROM sqlq;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
내가 그것을 실행하려고 할 때
# 고양이 file.sql | mysql -p
나는 얻다
ERROR 1064 (42000) at line 6: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near 'sqlq;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END' at line 5
내가 뭘 잘못하고 있죠?
해결 방법
문자열 리터럴 또는 문의 텍스트가 포함 된 사용자 변수 인 sql 만 준비하고 실행할 수 있습니다. 시험
USE mydb;
DROP PROCEDURE IF EXISTS execSql;
DELIMITER //
CREATE PROCEDURE execSql (
IN sqlq VARCHAR(5000)
) COMMENT 'Executes the statement'
BEGIN
SET @sqlv=sqlq;
PREPARE stmt FROM @sqlv;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
참조 페이지 https://stackoverflow.com/questions/5895383
반응형
'MySql' 카테고리의 다른 글
MySQL 대 PostgreSQL? Django 프로젝트에 어떤 것을 선택해야합니까? (0) | 2020.10.09 |
---|---|
MySQL phpMyAdmin 내보내기 / 가져 오기로 인해 기본 키 중복 오류가 발생합니다. (0) | 2020.10.09 |
MySQL 명령 줄을 통해 테이블 변경 (0) | 2020.10.08 |
MySQL의 Md5 및 Salt (0) | 2020.10.08 |
MySQL Mysql Improve Search Performance with wildcards (%%) (0) | 2020.10.08 |
댓글