Kin
Kin

Reputation: 128

Mysql Procedure Syntax error on Update

DELIMITER //

DROP PROCEDURE IF EXISTS pad_fato_to_tad_fato//


CREATE PROCEDURE pad_fato_to_tad_fato(IN IDFATO BIGINT, IN UCI BIGINT)

BEGIN
  INSERT INTO tad_fato (FAT_UCI, FAT_DESCRICAO,   
                        FAT_DATA_CIENCIA_AUTORIDADE, 
                        FAT_CADASTRANTE, FAT_DATA_CAD) 
   SELECT FAT_UCI, FAT_DESCRICAO, FAT_DATA_CIENCIA_AUTORIDADE, 
      FAT_CADASTRANTE, FAT_DATA_CAD 
   FROM pad_fato WHERE (FAT_ID = IDFATO);
END//

BEGIN
  UPDATE tad_termo_de_ajustamento SET TAD_STATUS_ID="2" WHERE (TAD_FK_PRE_UCI = UCI);
END//

DELIMITER ;

Error (12,1): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near UPDATE tad_termo_de_ajustamento SET TAD_STATUS_ID="2" WHERE (TAD_FK_PRE_UCI=UCI) at line 2

Upvotes: 0

Views: 30

Answers (1)

VirCom
VirCom

Reputation: 3612

You have double "END" word after each query. And not pretty formatted code :)

DELIMITER //

DROP PROCEDURE IF EXISTS pad_fato_to_tad_fato//

CREATE PROCEDURE pad_fato_to_tad_fato(IN IDFATO BIGINT, IN UCI BIGINT)

BEGIN
    INSERT INTO tad_fato (
        FAT_UCI,FAT_DESCRICAO,
        FAT_DATA_CIENCIA_AUTORIDADE,
        FAT_CADASTRANTE,FAT_DATA_CAD
    )
    SELECT
        FAT_UCI,
        FAT_DESCRICAO,
        FAT_DATA_CIENCIA_AUTORIDADE,
        FAT_CADASTRANTE,
        FAT_DATA_CAD
    FROM pad_fato
    WHERE (FAT_ID=IDFATO);

    UPDATE tad_termo_de_ajustamento
    SET
        TAD_STATUS_ID="2"
    WHERE (TAD_FK_PRE_UCI=UCI);
END//

DELIMITER ;

Upvotes: 2

Related Questions