postgresql
उदाहरण dblink और postgres_fdw
खोज…
वाक्य - विन्यास
dblink ('dbname = name_db_distance port = PortOfDB host = HostOfDB उपयोगकर्ता = usernameDB पासवर्ड = passwordDB', 'MY QUESRY')
dbname = डेटाबेस का नाम
port = डेटाबेस का पोर्ट
host = डेटाबेस का होस्ट
उपयोगकर्ता = डेटाबेस का उपयोगकर्ता नाम
पासवर्ड = डेटाबेस का पासवर्ड ',
मेरा प्रश्न = यह कोई भी ऑपरेशन हो सकता है जिसे मैं Select, INSERT, ...
ध्यान दें
dblink EXTENSION एक अन्य डेटाबेस को जोड़ने और इस डेटाबेस का संचालन करने के लिए एक तकनीक है ताकि आपको आवश्यकता हो:
1-एक डब्लिंक एक्स्टेंशन बनाएं:
CREATE EXTENSION dblink;
2-अपना ऑपरेशन करें:
छूट के लिए किसी अन्य डेटाबेस में किसी अन्य तालिका से कुछ विशेषता का चयन करें:
SELECT * FROM
dblink ('dbname = bd_distance port = 5432 host = 10.6.6.6 user = username
password = passw@rd', 'SELECT id, code FROM schema.table')
AS newTable(id INTEGER, code character varying);
FDW का विस्तार करें
एफडीडब्लू डब्लिंक का एक निहितार्थ है यह अधिक उपयोगी है, इसलिए इसका उपयोग करने के लिए:
1-एक extention बनाएँ:
CREATE EXTENSION postgres_fdw;
2-सर्वर बनाएं:
CREATE SERVER name_srv FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'hostname',
dbname 'bd_name', port '5432');
3-Postgres सर्वर के लिए यूजर मैपिंग बनाएं
CREATE USER MAPPING FOR postgres SERVER name_srv OPTIONS(user 'postgres', password 'password');
4-विदेशी तालिका बनाएँ:
CREATE FOREIGN TABLE table_foreign (id INTEGER, code character varying)
SERVER name_srv OPTIONS(schema_name 'schema', table_name 'table');
5-इस विदेशी तालिका का उपयोग करें जैसे यह आपके डेटाबेस में है:
SELECT * FROM table_foreign;
विदेशी डेटा आवरण
एकल तालिका के बजाय सर्वर डीबी के पूर्ण स्कीमा का उपयोग करने के लिए। नीचे दिए गए चरणों का पालन करें:
- विस्तार बनाएं:
CREATE EXTENSION postgres_fdw;
- सर्वर बनाएं:
CREATE SERVER server_name FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', dbname 'db_name', port 'port_number');
- उपयोगकर्ता मैपिंग बनाएँ:
CREATE USER MAPPING FOR CURRENT_USER SERVER server_name OPTIONS (user 'user_name', password 'password');
- सर्वर DB के स्कीमा का उपयोग करने के लिए नया स्कीमा बनाएँ:
CREATE SCHEMA schema_name;
- सर्वर स्कीमा आयात करें:
IMPORT FOREIGN SCHEMA schema_name_to_import_from_remote_db FROM SERVER server_name INTO schema_name;
- सर्वर स्कीमा की किसी भी तालिका तक पहुँचें:
SELECT * FROM schema_name.table_name;
इसका उपयोग रिमोट DB के कई स्कीमा को एक्सेस करने के लिए किया जा सकता है।