sql >> データベース >  >> Database Tools >> phpMyAdmin

予期しないMySQL構文エラーでクエリを実行できません

    これに関する問題:

    DELIMITER $$
    DROP PROCEDURE IF EXISTS my_test;
    CREATE PROCEDURE my_test() ...
    

    MySQLがDROP PROCEDUREの最後にセミコロンを表示していないということです ステートメントの終わりとしてのステートメント行。これは、前の行で、ステートメントターミネータがセミコロン以外のものであるとMySQLに通知されたためです。あなたはMySQLにステートメントが2つのドル記号で終了するだろうと言いました。したがって、MySQLはDROP PROCEDUREを読み取っています。 行、ステートメントターミネータを探します。また、読み取るBLOB全体は有効なMySQLステートメントではなく、構文エラーを生成します。

    修正:DROP PROCEDUREを移動する の行 DELIMITER $$ ライン;または、DROP PROCEDUREを終了します セミコロンではなく指定された区切り文字を含むステートメント。

    報告する2番目の問題は、構文エラーです。これは、MySQLが IFを認識しないために発生しています。 有効なSQLステートメントの先頭として。

    IF ステートメントはのみ有効です MySQLストアドプログラムのコンテキスト内(たとえば、CREATE PROCEDURE内 ステートメント。)

    修正:IFを使用する MySQLストアドプログラムのコンテキスト内でのみステートメント。

    報告する3番目の問題も構文エラーです。これは、SETの有効な構文がないために発生しています。 声明; SETのMySQL構文 ユーザー変数に値を割り当てるステートメントは次のとおりです。

    SET @uservar = expr 
    

    MySQLはを期待しています 等号の後。 MySQLはではありません SQLステートメントが必要です。

    SELECTの結果としてユーザー変数に値を割り当てるには ステートメントの場合、SELECTステートメント内で割り当てを行います。例:

    SELECT @Count := Count(id) FROM `tbl_object_users` WHERE `username`='jp2code'
    

    SELECT内の代入演算子に注意してください ステートメントは:=です (コロンは等しい) =だけではありません



    1. WampServerphpMyAdminは英語ではありません

    2. XAMPPでMySQLポートを変更しましたが、新しいポートをリッスンするにはどうすればよいですか?

    3. 'OPTIMIZE_FOR_SEQUENTIAL_KEY'を削除すると、script.sqlの失敗が解決されますか、それとももっと複雑になりますか(SQL Server Express DB-> SQL Server)?

    4. AzureSQLでマスターデータベースのマスターキーを作成できません