sql >> Databáze >  >> RDS >> Mysql

Nejsem schopen přijít na to, čeho jsem se při vytváření tohoto MYSQL dotazu dopustil

  • Oddělovač musíte nastavit na cokoli kromě ;
  • Volitelně zkontrolujte, zda již existuje uložená procedura se stejným názvem.
  • Na konci předefinujte oddělovač zpět na ;
  • Pokud nebudete používat proměnnou x mimo tuto uloženou proceduru; opravdu nemusíte používat @; zpřístupní proměnnou všude v dané konkrétní relaci).

Zkuste (další vysvětlení v komentářích):

CREATE TABLE t1 (s1 INT, PRIMARY KEY (s1)); -- create the table

DELIMITER $$ -- redefine the delimiter to $$ (for eg)

DROP PROCEDURE IF EXISTS `handlerdemo` $$ -- drop previous if exists

CREATE PROCEDURE handlerdemo ()
  BEGIN

    DECLARE x INT DEFAULT 0; -- datatype is INT 
    -- also a good practice to set default value

    SET x = 1; -- no need to use in Session context
    INSERT INTO t1 VALUES (x); -- use variable name here instead of literal value

    SET x = 2; 
    INSERT INTO t1 VALUES (x); 

  END $$ -- remember that delimiter is $$ right now

-- redefine the Delimiter back to ;
DELIMITER ;


  1. Jak vybrat pouze 1 řádek z Oracle SQL?

  2. Jak zabezpečit MySQL:Část druhá

  3. Může magento používat více slave MySQL?

  4. Výsledky skupiny Concat Cut Off