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

Proveďte více dotazů oddělených středníkem pomocí mysql Prepared Statement

Ne, to není možné. PREPARE / EXECUTE stmt může provádět pouze jeden dotaz najednou, mnoho příkazů nelze kombinovat.
Viz dokumentaci:http://dev.mysql. com/doc/refman/5.0/en/prepare.html

Každopádně pro zjednodušení vašeho kódu bych vytvořil jednoduchý postup:

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

a tento postup bych v hlavním postupu nazval takto:

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');

Podívejte se na ukázku:http://www.sqlfiddle.com/#! 2/6649a/6




  1. Můžete mít INNER JOIN bez klíčového slova ON?

  2. Jaký datový typ Java odpovídá datovému typu Oracle SQL NUMERIC?

  3. Vytvořte databázi MySQL z Javy

  4. CONCAT ve vývojáři sql