sql >> Database teknologi >  >> RDS >> Mysql

Udfør flere semikolonseparerede forespørgsler ved hjælp af mysql Prepared Statement

Nej, det er ikke muligt. PREPARE / EXECUTE stmt kan kun udføre én forespørgsel ad gangen, mange udsagn kan ikke kombineres.
Se dokumentation:http://dev.mysql. com/doc/refman/5.0/en/prepare.html

Uanset hvad, for at forenkle din kode ville jeg lave en simpel procedure:

CREATE PROCEDURE exec_qry( p_sql varchar(100))
BEGIN
  SET @tquery = p_sql;
  PREPARE stmt FROM @tquery;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
END 
/

og jeg vil kalde denne procedure i hovedproceduren på denne måde:

CALL exec_qry( 'CREATE TABLE t2 AS SELECT * FROM test');
CALL exec_qry( 'SELECT * FROM t2');
CALL exec_qry( 'SELECT count(*) FROM t2');
CALL exec_qry( 'SELECT avg(x) FROM t2');
CALL exec_qry( 'DROP TABLE t2');

Tag et kig på en demo:http://www.sqlfiddle.com/#! 2/6649a/6




  1. Konverter Excels 41014-dato til faktisk dato i PHP eller JavaScript

  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Kommunikationsforbindelsesfejl til fjerndatabasen

  3. sql:MELLEM v1 OG v2

  4. hvordan håndterer postgres bitdatatypen?