পোস্টগ্রাগে অন্য সেশনের অস্থায়ী টেবিলগুলি অ্যাক্সেস করার কোনও উপায় আছে কি?


17

আমি একটি উইন্ডোজ অ্যাপ্লিকেশন নিয়ে কাজ করছি যা একটি (স্থানীয়) পোস্টগ্রিজ ডেটাবেস ব্যবহার করে এবং অস্থায়ী সারণীতে কিছু তথ্য সঞ্চয় করে। আমি অস্থায়ী টেবিলটি দেখতে চাই, তবে পেগাডমিন এবং ডিবিভি আমাকে জানান: ERROR: cannot access temporary tables of other sessionsযখন ডেটা জিজ্ঞাসা করার চেষ্টা করছেন। আমি স্কিমা এবং টেবিলের অনুমতিগুলি পরিবর্তন করার চেষ্টা করেছি, তবে এটি প্রোগ্রাম হিসাবে নিজেই একই ব্যবহারকারীর সাথে (কমপক্ষে dbVis) ডাটাবেস অ্যাক্সেস করা সত্ত্বেও এটি সাহায্য করবে বলে মনে হচ্ছে না। আমি কি আমার ডেটাবেসে পরিবর্তন করতে পারি এমন একটি সেটিং আছে যা আমার ডাটাবেসের সমস্ত অধিবেশনে আমাকে "রুট" অ্যাক্সেস করতে দেয়?

উত্তর:


14

অন্যান্য সেশনে অস্থায়ী টেবিলগুলিতে অ্যাক্সেসের অভাব অনুমতিগুলির বিষয় নয়, এটি ডিজাইনের প্রযুক্তিগত সীমাবদ্ধতা। একটি পোস্টগ্রিএসকিউএল ব্যাকএন্ড অন্য ব্যাকএন্ডের অস্থায়ী টেবিলগুলিতে অ্যাক্সেস করতে পারে না কারণ অস্থায়ী টেবিলগুলির জন্য একত্রে অ্যাক্সেসের অনুমতি দেওয়ার মতো সাধারণ গৃহকর্মের কোনওটিই করা হয় না।

9.2 এ UNLOGGEDপরিবর্তে আপনি একটি টেবিল ব্যবহার করতে চান ; এটি অন্যান্য সেশনগুলি থেকে দৃশ্যমান হতে পারে তবে অস্থায়ী সারণীর বেশিরভাগ কার্যকারিতা বেনিফিট ধরে রাখে।


11

সংক্ষিপ্ত উত্তর হলো 'না". অন্যান্য সেশনে অস্থায়ী টেবিলগুলি ডিজাইনের মাধ্যমে অদৃশ্য । দুটি সেশনের একই ব্যবহারকারী থাকলে এটি কোনও তাত্পর্যপূর্ণ হয় না। এমন কি:

অটোভ্যাকুম ডেমন অ্যাক্সেস করতে পারে না এবং তাই অস্থায়ী সারণীগুলি শূন্য করতে বা বিশ্লেষণ করতে পারে না


যখন টেম্প টেবিলগুলি বাদ দেওয়া হয়, তখন তাদের কোনও মেমরি বা ডিস্ক সংস্থান আপ করতে কোনও শূন্যস্থান প্রয়োজন? আমি এই সমস্যাটি সমাধান করার চেষ্টা করছি এবং নিশ্চিত নই যে এই সত্য যে অটোভ্যাকুম অস্থায়ী টেবিলগুলি দেখতে পাবে না তা মেমরি ফুটো হওয়ার কারণ। আমার নিজেই শূন্যতা দরকার?
poshest

"যখন টেম্প টেবিলগুলি ফেলে দেওয়া হয় তখন তাদের কী শূন্যতার প্রয়োজন হয়" না, এখানে দেখুন । কেবলমাত্র টেম্প টেবিল নয়, কোনও টেবিলের ক্ষেত্রে একই true
জ্যাক ডগলাস

3

এটি আপনাকে সাহায্য করতে পারে কিনা আমি জানি না তবে আপনি চেষ্টা করে দেখতে পারেন।

নিম্নলিখিত সিস্টেম ক্যাটালগ সারণী ক্যোয়ারী ডাটাবেসে অন্যান্য সেশনে তৈরি সমস্ত অস্থায়ী সারণী তালিকাবদ্ধ করতে সক্ষম হবে:

pg_class pc, pg_namespace pn থেকে pn.nspname, pc.relname নির্বাচন করুন যেখানে pc.relnamespace = pn.oid এবং pc.relname ilike 'your_temp_table_name';

প্রতি পোস্টগ্রিএসকিউএল ডক , Temporary tables exist in a special schemaএবং সাধারণত হিসাবে নাম দিয়ে তৈরি করা হয় pg_temp_xxx। সুতরাং, ব্যবহার schemanamerelationnameউপরের প্রশ্ন থেকে আপনার অস্থায়ী টেবিলটি জিজ্ঞাসা করা উচিত। আপনি এখানে দেখতে পাচ্ছেন, অস্থায়ী টেবিলটি স্কিমা-যোগ্য নামের সাথে উল্লেখ করা হয়েছে।

উদাহরণ: select * from pg_temp_20.your_temp_table_name


1
টিপ জন্য ধন্যবাদ. আমি ডিবিভিস ব্যবহার করে অস্থায়ী টেবিলের নাম এবং স্কিমা সন্ধান করতে সক্ষম হয়েছি (যা সম্ভবত আপনি উল্লেখ করা প্রথম ক্যোয়ারী ব্যবহার করে) তবে সমস্যাটি হ'ল আমি তাদের তৈরি করা বৈঠক ছাড়া অন্য কোন অধিবেশন থেকে তাদের অ্যাক্সেস করতে পারিনি।
newenglander
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.