sql >> Database >  >> RDS >> Mysql

Ik kan er niet achter komen wat voor fout ik heb begaan bij het maken van deze MYSQL-query

  • Je moet Scheidingsteken instellen op alles behalve ;
  • Vul eventueel een vinkje in als de opgeslagen procedure met dezelfde naam al bestaat.
  • Op het einde herdefinieer je het scheidingsteken terug naar ;
  • Tenzij je variabele x . gaat gebruiken buiten deze opgeslagen procedure; je hoeft echt niet @ te gebruiken; het maakt de variabele overal in die specifieke sessie beschikbaar).

Probeer (meer uitleg in de reacties):

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. Kan record niet in SQLite-database invoegen vanuit Firebase Message Service wanneer de app op de achtergrond of gesloten is

  2. Hoe logbestanden in MySQL te bekijken?

  3. Alleen tijd bijwerken in een mysql DateTime-veld

  4. verwijder dubbele rijen op basis van één kolomwaarde