sql >> Databasteknik >  >> RDS >> Mysql

Fel när en procedur mysql CRUD skapades

  • Du måste definiera om Delimiter till något annat, till exempel:$$ . Detta gör att parsern kan ignorera ; (kör därför inte satsen när du når ; ).
  • Också, som en god praxis, använd alltid DROP PROCEDURE IF EXISTS , för att undvika att misslyckas om en procedur med samma namn redan finns.
  • I slutet, omdefiniera avgränsaren tillbaka till ;

Prova följande:

DELIMITER $$

DROP PROCEDURE IF EXISTS `ItemsAddOrEdit` $$

CREATE PROCEDURE `ItemsAddOrEdit`(
_itm_id INT,
_itm_name VARCHAR(255),
_itm_price FLOAT(8,2)
)
BEGIN
    IF _itm_id = 0 THEN
    INSERT INTO items (itm_name, itm_price)
    VALUES (_itm_name, _itm_price);
ELSE
    UPDATE items
    SET
        itm_name = _itm_name,
        itm_price = _itm_price
    WHERE itm_id = _itm_id;
END IF;
END $$

DELIMITER ;



  1. Uppdatera flera kolumner i MERGE-satsen ORACLE

  2. Hur hämtar man alla rader som matchar minst ett värde från arrayen?

  3. MySQL - SUMMA av en grupp av tidsskillnader

  4. DECOMPOSE() Funktion i Oracle