mysqlリファレンスの問題

mysqlリファレンスの問題

次のコマンドを実行していますが、参照などに関するエラーが発生します。

#!/bin/bash
test='my_table'
date='2020-10-31 00:00:00.000000'

mysql --user=halloween --password='ghost_123' --database='ghost_database' <<END
use ghost_datebase;
CREATE EVENT myevent    ON SCHEDULE AT \"$date"\ ON COMPLETION NOT PRESERVE  ENABLE DO  SELECT * FROM "$test";
END

その後、次のエラーが発生します。

ERROR at line 2: Unknown command '\"'.

ベストアンサー1

二重引用符は、ENDここで文書の先頭のタグを識別します。次に、ここで説明されているように正しいMySQL構文を使用してください。 MySQLで正常にエスケープされない限り、引用符をエスケープしないでください。

mysql --user='halloween' --password='ghost_123' --database='ghost_database' <<"END"
CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM "$test";
END

私はあなたのSQL構文を変更したくありません。私は、テーブル名(または文字列)に二重引用符が正しいことを完全にはわかりません。

挿入する変数がない場合は、here-doc識別子を一重引用符で囲むことが正確です。 (参照は文字列への参照と同じです。)

おすすめ記事