PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

केवल PostgreSQL तालिका नाम का उपयोग नहीं कर सकता (संबंध मौजूद नहीं है)

मैंने जो पढ़ा है, उससे इस त्रुटि का अर्थ है कि आप तालिका के नाम को सही ढंग से संदर्भित नहीं कर रहे हैं। एक सामान्य कारण यह है कि तालिका को मिश्रित-केस वर्तनी के साथ परिभाषित किया गया है, और आप इसे सभी लोअर-केस से क्वेरी करने का प्रयास कर रहे हैं।

दूसरे शब्दों में, निम्नलिखित विफल रहता है:

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

पहचानकर्ताओं को परिसीमित करने के लिए दोहरे-उद्धरणों का उपयोग करें ताकि आप विशिष्ट मिश्रित-केस वर्तनी का उपयोग कर सकें क्योंकि तालिका परिभाषित की गई है।

SELECT * FROM "SF_Bands";

अपनी टिप्पणी फिर से करें, आप "search_path" में एक स्कीमा जोड़ सकते हैं ताकि जब आप किसी तालिका नाम को उसकी स्कीमा को अर्हता प्राप्त किए बिना संदर्भित करते हैं, तो क्वेरी प्रत्येक स्कीमा को क्रम में चेक करके उस तालिका नाम से मेल खाएगी। जैसे PATH शेल में या include_path PHP में, आदि। आप अपने वर्तमान स्कीमा खोज पथ की जांच कर सकते हैं:

SHOW search_path
  "$user",public

आप अपना स्कीमा खोज पथ बदल सकते हैं:

SET search_path TO showfinder,public;

यह भी देखें http://www.postgresql.org/docs/8.3/static/ddl-schemas.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेस्क्ल डेटाबेस में टेबल बनाने के लिए डॉकर-कंपोज़ का उपयोग करना

  2. PostgreSQL के साथ समान स्ट्रिंग्स को शीघ्रता से ढूँढना

  3. Haproxy और Keepalived की स्थापना कैसे करें

  4. postgresql डेटाबेस स्वामी डेटाबेस तक नहीं पहुंच सकता - कोई संबंध नहीं मिला।

  5. Postgresql में कैरिज रिटर्न और नई लाइनें कैसे निकालें?