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

SQLステートメントでmysqliをDELIMITERと連携させる方法は?

    これは私がこれを理解するのに役立った情報源です... http://zend-framework-community.634137.n4.nabble.com/Problems-changing-the-sql-end-of-statement-delimiter-tp2124060p2124276.html

    これは、多数のSQLステートメントを同時に送信するために一部のMySQLクライアントが実装したものにすぎないと思います。

    mysqliドライバー この機能は実装されていません。

    したがって、これは機能するはずです。

    $query = <<<QUERY
    DROP VIEW IF EXISTS `myview` ;
    SHOW WARNINGS;
    DROP TABLE IF EXISTS `myview`;
    SHOW WARNINGS;
    
    CREATE OR REPLACE VIEW `myview` AS
    
    ...view definition...
    
    ;
    SHOW WARNINGS;
    
    SET [email protected]_SQL_MODE;
    SET [email protected]_FOREIGN_KEY_CHECKS;
    SET [email protected]_UNIQUE_CHECKS;
    QUERY;
    
    $result = mysqli_multi_query($dbConnection, $query);
    

    同じmysqliドライバー、multi_query関数(プロシージャの作成時に区切り文字を使用)、および DELIMITER の削除で、同じ問題が発生しました。 私のSQLからはうまくいきました。




    1. ミリ秒を表示するLaravelタイムスタンプ

    2. MySQL、結合を使用したDELETEクエリ

    3. MYSQLはcount(*)=1のすべての結果を削除します

    4. SQLで「いいね」を使用する方法