DELIMITER $$
USE `RTList`$$
DROP PROCEDURE IF EXISTS `INSERT_INTO_MT_Tables`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `INSERT_INTO_MT_Tables`(
IN mtTableName VARCHAR(10)
, IN mTableName VARCHAR(15)
, IN mtField VARCHAR(15)
, IN mtItemID VARCHAR(15)
, IN mtItemName VARCHAR(15)
, IN AdminID INT)
BEGIN
DECLARE @SQLString VARCHAR(200);
SET @SQLString =
'INSERT INTO ' + mtTableName +
'(' + mtItemID + ', ' + mtField + ', User_Created, Date_Created, User_Modified, Date_Modified)'
+ ' SELECT ' + mtItemID + ' , ' + mtField + ', AdminID, NOW(), AdminID, NOW()
FROM ' + mTableName + '
WHERE ' + mtField + ' = ''' + mtItemName + ''' LIMIT 1;';
PREPARE test FROM @SQLString;
EXECUTE test;
END$$
DELIMITER ;
CALL INSERT_INTO_MT_Tables('MT_Phone', 'M_Phone', 'Phone_Number', 'PhoneID', '12345678', 1);
오류 메시지 (종료 후 cmd를 실행)되는 MYSQL 저장 프로 시저에 exec 명령을 실행할 수 없습니다 : 내가 전에 cmd를 실행 (변경 후 다음 내가 변경 한 후 다음
Error Code: 1064
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 'EXECUTE test;
DELIMITER' at line 2
오류 메시지입니다 끝) :이
Error Code: 1064
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 '@SQLString VARCHAR(200);
SET @SQLString =
'INSERT INTO ' + mtTableName +
'(' + ' at line 9
안녕,
가 내 코딩 위의 참조하십시오. 저장 프로 시저에 대한 지식이 거의 없습니다. 하지만이 질문을 게시하기 전에 주위를 둘러 보려고했습니다. cmd가 간단하지만 여전히 운이없는 것 같습니다.이 cmd를 실행할 수 있습니다.
내가 잘못 작성하여 어디에 작동하지 않는지 알려 주실 수 있습니까?
이 기본 질문에 대한 귀하의 지식에 진심으로 감사드립니다.
감사합니다.
는'문자열을 mtItemName'입니다 :
는 여기에 내가 MySQL을 5.5.30에서 테스트 스크립트의 버전입니까? –
@JW 웃기지 마 .. – Febri