sql >> データベース >  >> RDS >> Mysql

mysqlプリペアドステートメントを使用して複数のセミコロンで区切られたクエリを実行します

    いいえ、できません。 PREPARE / EXECUTE stmt 一度に実行できるクエリは1つだけであり、多くのステートメントを組み合わせることができません。
    ドキュメントを参照してください: http://dev.mysql。 com / doc / refman / 5.0 / en / prepare.html

    とにかく、コードを単純化するために、簡単な手順を作成します:

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

    そして、私はこの手順をメイン手順で次のように呼び出します:

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

    デモをご覧ください: http://www.sqlfiddle.com/#! 2 / 6649a / 6




    1. ビットマップヒープスキャンのパフォーマンス

    2. PostgresQLを使用したランニングカウントの合計

    3. Oracleでビューの列サイズを変更する方法

    4. pg nodejsパッケージの結果、「タイプjsonの入力構文が無効になります」