[英]Error says table doesn't exist in database, while it exists
我使用此 sql 查詢提取了數據庫中表的名稱列表:
"SELECT table_name from information_schema.tables"
我得到了這個清單:
table_name
1 main_table
2 kp_table
3 ids_table
4 main_logs
然后我想提取表ids_table:
"SELECT * from ids_table"
所以想要的結果是得到那個表,但我得到這個錯誤:
Error: Failed to prepare query: ERROR: relation "ids_table" does not exist
LINE 1: SELECT * from ids_table
為什么會發生? 為什么我從第一次查詢中得到它的名字,但后來它告訴我它不存在?
在這種情況下,我想說最常見的問題是您正在查看兩個不同的數據庫。 在這種情況下,這可能不是原因。
另一種常見的可能性是架構是意外的,您應該引用架構。 為此,請在查詢中包含架構:
select table_schema, table_name
from information_schema.tables
另一種可能性是隱藏字符,例如空格。 您可以通過添加分隔符來查看這是否是問題,因此請檢查名稱:
select '|' || table_name || '|'
from information_schema.tables
看起來您正在嘗試來自不同模式的 select 數據,默認情況下由不同的用戶擁有,但您可以訪問它。 由於此表不是由您用於 select * from... 的用戶創建的,因此您必須在表名之前指明模式名稱。 如果沒有模式名稱,它會嘗試從用戶模式中獲取 select 日期,但實際上表由完全不同的用戶擁有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.