সম্পাদনা: আমি আসল স্বীকৃত উত্তরটি ঠিক তেমনই রেখে দিচ্ছি, তবে দয়া করে নোট করুন যে নীচের সম্পাদনাটি, যেমন__হর্স_উইথ_নো_নাম দ্বারা প্রস্তাবিত, ভ্যালু ব্যবহার করে একটি অস্থায়ী টেবিল তৈরি করার জন্য পছন্দসই পদ্ধতি।
আপনি যদি কেবল কোনও সারণী তৈরি এবং এটিতে thanোকানোর পরিবর্তে কিছু মান থেকে নির্বাচন করতে চান তবে আপনি এর মতো কিছু করতে পারেন:
WITH vals (k,v) AS (VALUES (0,-9999), (1, 100))
SELECT * FROM vals;
আসলে একই ধরণের একটি অস্থায়ী টেবিল তৈরি করতে, ব্যবহার করুন:
WITH vals (k,v) AS (VALUES (0,-9999), (1, 100))
SELECT * INTO temporary table temp_table FROM vals;
সম্পাদনা: a_horse_with_no_name দ্বারা উল্লিখিত হিসাবে, দস্তাবেজে এটি CREATE TABLE AS...
কার্যকরীভাবে অনুরূপ বলে উল্লেখ করেছে SELECT INTO ...
, তবে পূর্ববর্তীটি পরবর্তীকালের একটি সুপারসেট এবং এটি SELECT INTO
অস্থায়ী ভেরিয়েবলের জন্য একটি মান নির্ধারণের জন্য plpgslq ব্যবহার করা হয় - সুতরাং এটি ব্যর্থ হবে কেস। সুতরাং, উপরোক্ত উদাহরণগুলি সরল এসকিউএল-এর জন্য বৈধ হলেও CREATE TABLE
ফর্মটি অগ্রাধিকার দেওয়া উচিত।
CREATE TEMP TABLE temp_table AS
WITH t (k, v) AS (
VALUES
(0::int,-99999::numeric),
(1::int,100::numeric)
)
SELECT * FROM t;
দ্রষ্টব্য, a_horse_with_no_name দ্বারা করা মন্তব্যগুলি এবং ওপির মূল প্রশ্নে এটিতে মান তালিকার সঠিক ডেটাটাইপগুলিতে একটি কাস্ট অন্তর্ভুক্ত রয়েছে এবং এটি একটি সিটিই (ডাব্লুআইটি) বিবৃতি ব্যবহার করে।
এছাড়াও, ইভান ক্যারোলের উত্তরে নির্দেশিত হিসাবে, একটি সিটিই কোয়েরিটি একটি অপ্টিমাইজেশন বেড়া , অর্থাৎ, সিটিই সর্বদা বাস্তবায়িত হয়। সিটিই ব্যবহারের জন্য অনেকগুলি ভাল কারণ রয়েছে, তবে সাবধানতার সাথে ব্যবহার না করা হলে যথেষ্ট উল্লেখযোগ্য পারফরম্যান্স হিট হতে পারে। তবে অনেকগুলি উদাহরণ রয়েছে যেখানে অপ্টিমাইজেশনের বেড়াটি কার্য সম্পাদনকে বাড়িয়ে তুলতে পারে, তাই অন্ধভাবে এড়াতে না পারার বিষয়টি সচেতন থাকার মতো।