নিবন্ধ ডিরেক্টরি
MySQL-এ কীভাবে একটি টেম্পোরারি টেবিল তৈরি বা ডিলিট করা যায় ? MySQL টেম্পোরারি টেবিলের উদ্দেশ্য কী?
মাইএসকিউএল অস্থায়ী টেবিল
যখন আমাদের কিছু অস্থায়ী ডেটা সংরক্ষণ করতে হয় তখন মাইএসকিউএল অস্থায়ী টেবিলটি খুব দরকারী।অস্থায়ী টেবিলগুলি শুধুমাত্র বর্তমান সংযোগে দৃশ্যমান হয়৷ সংযোগটি বন্ধ হয়ে গেলে, Mysql স্বয়ংক্রিয়ভাবে টেবিলটি মুছে ফেলবে এবং সমস্ত স্থান ছেড়ে দেবে৷
MySQL সংস্করণ 3.23-এ টেম্পোরারি টেবিল যুক্ত করা হয়েছিল। আপনার MySQL সংস্করণ 3.23-এর চেয়ে কম হলে, আপনি MySQL টেম্পোরারি টেবিল ব্যবহার করতে পারবেন না। তবে, আজকাল MySQL ডেটাবেস পরিষেবার এই ধরনের নিম্ন সংস্করণগুলো খুব কমই ব্যবহৃত হয়।
MySQL-এর অস্থায়ী সারণী শুধুমাত্র বর্তমান সংযোগে দৃশ্যমান৷ আপনি যদি একটি MySQL অস্থায়ী টেবিল তৈরি করতে একটি PHP স্ক্রিপ্ট ব্যবহার করেন, PHP স্ক্রিপ্টটি চালানো হলে অস্থায়ী টেবিলটি স্বয়ংক্রিয়ভাবে ধ্বংস হয়ে যাবে৷
আপনি যদি একটি অস্থায়ী টেবিল তৈরি করতে MySQL ডাটাবেস সার্ভারের সাথে সংযোগ করতে অন্য MySQL ক্লায়েন্ট প্রোগ্রাম ব্যবহার করেন, তাহলে ক্লায়েন্ট প্রোগ্রামটি বন্ধ হলেই অস্থায়ী টেবিলটি ধ্বংস হবে। অবশ্যই, আপনি নিজেও এটিকে ধ্বংস করতে পারেন।
দৃষ্টান্ত
নিম্নলিখিতটি MySQL অস্থায়ী টেবিল ব্যবহার করার একটি সহজ উদাহরণ দেখায়, নিম্নলিখিত SQL কোডটি PHP স্ক্রিপ্টের mysql_query() ফাংশনে প্রয়োগ করা যেতে পারে।
MySQL的> CREATE TEMPORARY TABLE SalesSummary (- > PRODUCT_NAME VARCHAR (50 )NOT NULL - > ,TOTAL_SALES DECIMAL (12 ,2 )NOT NULL DEFAULT 0.00 - > ,avg_unit_price DECIMAL (7 ,2 )NOT NULL DEFAULT 0.00 - > ,total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); 查询OK ,0 行受影响(0.00 秒 ) 的MySQL > INSERT INTO SalesSummary - > (PRODUCT_NAME ,TOTAL_SALES ,avg_unit_price ,total_units_sold )- > VALUES - > ('黄瓜' ,100.25 ,90 ,2 ); mysql > SELECT * FROM SalesSummary ; + -------------- + ------------- + ---------------- + --- --------------- + | product_name | total_sales | avg_unit_price | total_units_sold | + -------------- + ------------- + ---------------- + --- --------------- + | 黄瓜 | 100.25 | 90.00 | 2 | + -------------- + ------------- + ---------------- + --- --------------- + 1 行中集合(0.00 秒)
যখন আপনি টেবিলের তালিকা প্রদর্শন করার জন্য SHOW TABLES কমান্ডটি ব্যবহার করবেন, তখন আপনি SalesSummary টেবিলটি দেখতে পাবেন না।
আপনি যদি বর্তমান MySQL সেশন থেকে বেরিয়ে যান এবং তারপরে পূর্বে তৈরি করা টেম্পোরারি টেবিল থেকে ডেটা পড়ার জন্য SELECT কমান্ড ব্যবহার করেন, তাহলে আপনি দেখতে পাবেন যে ডেটাবেসে টেবিলটির কোনো অস্তিত্ব নেই, কারণ আপনার বেরিয়ে যাওয়ার সময় টেম্পোরারি টেবিলটি নষ্ট হয়ে গেছে।
মাইএসকিউএল অস্থায়ী টেবিল বাদ দিন
ডিফল্টরূপে, আপনি ডাটাবেস থেকে সংযোগ বিচ্ছিন্ন করলে টেম্পোরারি টেবিলগুলো স্বয়ংক্রিয়ভাবে মুছে যায়। বিকল্পভাবে, আপনি বর্তমান MySQL সেশনের মধ্যে DROP TABLE কমান্ড ব্যবহার করে টেম্পোরারি টেবিলগুলো ম্যানুয়ালি মুছে ফেলতে পারেন।
নীচে একটি অস্থায়ী টেবিল ম্যানুয়ালি ড্রপ করার একটি উদাহরণ:
mysql> CREATE TEMPORARY TABLE SalesSummary ( -> product_name VARCHAR(50) NOT NULL -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00 -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00 -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO SalesSummary -> (product_name, total_sales, avg_unit_price, total_units_sold) -> VALUES -> ('cucumber', 100.25, 90, 2); mysql> SELECT * FROM SalesSummary; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | cucumber | 100.25 | 90.00 | 2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec) mysql>DROP TABLE SalesSummary ; mysql > SELECT * FROM SalesSummary ; 错误1146 :表'chenweiliang.SalesSummary' 不存在
আশা করি, চেন ওয়েইলিয়াং-এর ব্লগে ( https://www.chenweiliang.com/ ) শেয়ার করা "How to Create/Delete a Temporary Table in MySQL? The Role of Temporary Tables in MySQL" আর্টিকেলটি আপনার জন্য সহায়ক হবে।
এই নিবন্ধটির লিঙ্কটি নির্দ্বিধায় শেয়ার করুন: https://www.chenweiliang.com/cwl-497.html
