我注意到 MySQL 中的奇怪行為,只有{schema}.{table_name}在 backticks 中沒有參考時才可能進行跨模式查詢(`)。現在這是技術上定義的行為,根據 MySQL 的技術來轉義用作表名等的保留字,但是一個功能(安全地使用保留字)阻止另一個功能(跨模式查詢)似乎違反直覺。是否有某種方法可以禁用此功能,或者我唯一的選擇是在跨模式查詢中不在我的表名周圍使用反引號。
uj5u.com熱心網友回復:
模式名稱和表名稱是單獨的標記,應單獨分隔。
https://dev.mysql.com/doc/refman/8.0/en/identifier-qualifiers.html說:
如果多部分名稱的任何組成部分需要參考,請單獨參考它們而不是參考整個名稱。例如,寫 `my-table`.`my-column`,而不是 `my-table.my-column`。
使用模式和表時也是如此,例如:
WRONG — 嘗試查找名稱db1.mytable在當前模式中的表。
SELECT * FROM `db1.mytable`;
RIGHT — 使用mytableschema中命名的限定表db1。
SELECT * FROM `db1`.`mytable`;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/484589.html
標籤:mysql
