Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wykonaj wiele zapytań oddzielonych średnikami za pomocą mysql Prepared Statement

Nie, to niemożliwe. PREPARE / EXECUTE stmt może wykonywać tylko jedno zapytanie na raz, nie można łączyć wielu instrukcji.
Zobacz dokumentację:http://dev.mysql. com/doc/refman/5.0/en/prepare.html

W każdym razie, aby uprościć Twój kod, stworzyłbym prostą procedurę:

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

i nazwałbym tę procedurę w głównej procedurze w ten sposób:

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

Obejrzyj demo:http://www.sqlfiddle.com/#! 2/6649a/6




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. niestandardowe forum php - pokazywanie nowych/nieprzeczytanych postów

  2. Najmniejsza i największa możliwa data w PHP i MySQL

  3. Prawidłowy sposób na skonfigurowanie bazy danych MYSQL do wyszukiwania powiązanych tagów?

  4. Jak odzyskać dane z Mysql z dni, które nie mają statystyk

  5. Zmienna „sql_mode” nie może mieć wartości „REPLACE”