1
保護反引號我有一個自定義的MySQL備份腳本,該腳本的一部分,應該執行這樣的說法(有意刪除。廣州):在替代
mysql -uroot -pmypass -e "CREATE DATABASE IF NOT EXISTS `basename -s .gz test-db.gz`"
,但它不能正常工作,併產生一個錯誤:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-db' at line 1
我知道問題是用連字符「 - 」分隔test和db。
而這個語句的工作
mysql -uroot -pmypass -e "CREATE DATABASE IF NOT EXISTS \`test-db.gz\`"
那麼,如何讓上面的語句工作,包括命令替換我需要什麼?
難道我得到它的權利,你可以用單引號括起來的數據庫名稱,以及有連字符?現在不能測試它 –
是的,這是正確的,除了反引號「不是單引號」。試了一下,它確實有效。目的是爲了逃避名稱中的任何保留字,在這種情況下是「 - 」。對於drop語句,如果你省略反引號,它會給你最初的錯誤。 –
如果它確實對你有用,你能否接受答案,讓面對與你同樣問題的人更加明白。 –