입력 변수를 기반으로 레코드를 삽입하거나 업데이트하는 저장 프로 시저를 만들려고합니다. 그러나 SP를 컴파일하려고하면 다음과 같이 알려줍니다 : 코드 1064, SQL 구문에 오류가 있습니다. 해당 구문을 사용하여 MySQL 서버 버전에 해당하는 올바른 구문을 사용하여 80 줄 근처에서 사용하십시오. 그리고 솔루션을 찾지 못했습니다. 당신이 저에게 줄 수있는 도움에 대해 대단히 감사합니다.MySQL에서 삽입 업데이트를위한 저장 프로 시저 만들기
DELIMITER $$
CREATE PROCEDURE `sp_sertup`(IN i_operation CHAR(1),
IN i_system VARCHAR(20),
IN i_subsystem VARCHAR(20),
IN i_ref VARCHAR(20),
IN i_significance VARCHAR(20),
IN i_rank VARCHAR(20),
IN i_implication VARCHAR(20),
IN i_loc1 VARCHAR(20),
IN i_loc2 VARCHAR(20),
IN i_task VARCHAR(20),
IN i_time VARCHAR(20),
IN i_cost1 VARCHAR(20),
IN i_cost2 VARCHAR(20),
IN i_note VARCHAR(20),
IN i_attach VARCHAR(20),
IN i_operation_text VARCHAR(20),
IN i_id_setup INT)
BEGIN
IF (i_operation = 'I') THEN
UPDATE setup_gs SET setup_status = 0 WHERE id_setup = id_setup;
INSERT INTO setup_gs(
SystemLabel,
SubsystemLabel,
RefLabel,
SignificanceLabel,
RankLabel,
ImplicationLabel,
Location1Label,
Location2Label,
TaskLabel,
TimeLabel,
Cost1Label,
Cost2Label,
NoteLabel,
attachmentText,
OperationsText,
setup_status
)
VALUES
(
i_system,
i_subsystem,
i_ref,
i_significance,
i_rank,
i_implication,
i_loc1,
i_loc2,
i_task,
i_time,
i_cost1,
i_cost2,
i_note,
i_attach,
i_operation_text,
1);
IF (i_operation = 'U') THEN
UPDATE
setup_gs
SET
SystemLabel = values(i_system),
SubsystemLabel = values(i_subsystem),
RefLabel = values(i_ref),
SignificanceLabel = values(i_significance),
RankLabel = values(i_rank),
ImplicationLabel = values(i_implication),
Location1Label = values(i_loc1),
Location2Label = values(i_loc2),
TaskLabel = values(i_task),
TimeLabel = values(i_time),
Cost1Label = values(i_cost1),
Cost2Label = values(i_cost2),
NoteLabel = values(i_note),
attachmentText = values(i_attach),
OperationsText = values(i_operation_text),
setup_status = 1
WHERE id_setup = i_id_setup;
END $$
DELIMITER ;
와우, 간단하게, 대단히 감사합니다, 완벽하게 일했습니다. 나는 이것에 매달리는 시간이 있었다. 토요일 날 구해 줬어! – oraguilinux
NP 및 SO! 당신이 그것에 동의하는 경우에 당신이 좋아하는 어떤 대답이라도 표를하고 최고에 받아 들여진 대답을위한 표를 검사하는 것을 기억하십시오. –