তৈরি বা প্রতিস্থাপনের সাথে পোস্টগ্রিএসকিউএল ভিউতে কলামগুলির নাম পরিবর্তন করা যায় না


37

পোস্ট্রেএসকিউএল 8.3 এ, আমি এমন একটি ভিউ তৈরির চেষ্টা করছি যা কোনও বিদ্যমান টেবিলের মতো দেখায় তবে বিভিন্ন কলামের নাম থাকবে।

এইটা কাজ করে

CREATE OR REPLACE VIEW gfam.nice_builds AS 
 SELECT (family_tree.family_tree_id) as x,
        family_tree.family_tree_name, family_tree.family_tree_description
   FROM gfam.family_tree;

উপরেরটি পরিবার_বৃক্ষের টেবিলের একটি সদৃশ তৈরি করে তবে নিম্নলিখিত প্রচেষ্টা ব্যর্থ হয়:

CREATE OR REPLACE VIEW gfam.nice_builds AS 
 SELECT (family_tree.family_tree_id) as x,
        family_tree.family_tree_name, family_tree.family_tree_description
   FROM gfam.family_tree;
  • ত্রুটি: "পারিবারিক_বৃক্ষ_আইডি" কলামের নামটি পরিবর্তন করতে পারে না

আমি কীভাবে কলামগুলির নাম পরিবর্তন করতে পারি?

উত্তর:


45

আমি আপনার ত্রুটিটি পুনরুত্পাদন করতে পারি ... আমার ক্ষেত্রে, আমি প্রথমে একটি তারিখ 'তারিখ' এবং তারপর 'এক্স' হিসাবে তৈরি করেছি (দেখার চেষ্টা করছিলাম এটি কোনও সংরক্ষিত শব্দের সাথে কোনও সমস্যা ছিল কিনা; এটি ছিল না:

ERROR:  cannot change name of view column "date" to "x"

আপনি যদি drop viewপ্রথমটি ইস্যু করেন তবে এটি আপনাকে পরিবর্তিত নামের সাথে পুনরায় তৈরি করতে দেবে। কেন create or replaceকরবে না আমার ধারণা নেই ।


কলিন টি হার্টের ব্যাখ্যা :

এর জন্য ডকুমেন্টেশনটিCREATE VIEW এটি বেশ ভালভাবে ব্যাখ্যা করেছে, আমি মনে করি:

নতুন ক্যোয়ারিতে বিদ্যমান ভিউ ক্যোয়ারি দ্বারা উত্পাদিত একই কলামগুলি তৈরি করতে হবে (এটি একই ক্রমের একই নাম এবং একই ডেটা ধরণের সহ) তবে এটি তালিকার শেষে অতিরিক্ত কলাম যুক্ত করতে পারে।


আসলে, আপনাকে নির্বাচন করুন কলাম তালিকার শেষে নতুন কলাম যুক্ত করতে হবে, অন্যথায় আপনি ত্রুটিটি পাবেন!

1
কিছুটা অফ-টপিক মন্তব্য: দু'টি সারণী থেকে দেখার সহায়তায় ডেটা সংগ্রহ করার চেষ্টা করার সময় আমি একই ধরণের সমস্যার মুখোমুখি হয়েছি। তবে প্রকৃতপক্ষে একই নামের কলামগুলির জন্য আমার বিভিন্ন ধরণের ( VARCHARপ্রথম টেবিল এবং TEXTদ্বিতীয় টেবিলে) ছিল। আমি তদন্তের জন্য অনেক সময় ব্যয় করেছি যতক্ষণ না আমি লক্ষ্য করেছি যে VARCHARদুটি টেবিলে আইডিই প্রদর্শিত হয় ! কেবল খাঁটি pg_dumpআমাকে সাহায্য করেছেন।
ফ্ল্যাজ 14

31

আপনি ALTER TABLE tbl RENAME COLUMN foo TO barদেখতে কলামগুলির পুনরায় নামকরণ করতেও ব্যবহার করতে পারেন ।


tblএখানে কি ? এটি কি আসল টেবিল যার জন্য দৃশ্যটি তৈরি করা হয় বা এটি দেখার নাম?
ইউজেন কনকভ

@ ইউজেনকনকভ এই দৃশ্যটি দেখে মনে হচ্ছে। আমি এটি পরীক্ষা করেছি এবং এটি কাজ করে
ডেটাবেসশুটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.