با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش MySQL را دنبال می کنند. تاکنون با درج جداول عادی در دیتابیس و ویرایش آن ها آشنا شدیم ، علاوه بر آن می توانید از جداول موقت در MySQL نیز برای نگهداری اطلاعات موقت خود استفاده کنید. مهمترین نکته ای که باید در نظر داشته باشید این است که جداول موقت با پایان یافتن جلسه کاری کاربر جاری حذف می شوند. برای آشنایی بیشتر با جداول موقت در MySQL و چگونگی استفاده از آن ها در ادامه ی این مبحث با ما همراه باشید.
در این آموزش شما را با طرز ایجاد جداول موقت در MySQL و حذف آن ها آشنا می کنیم.
جداول موقت در MySQL در نسخه ی ۳٫۲۳ در MySQL اضافه شده است.
اگر شما از نسخه های قدیمی تر از ۳٫۲۳ استفاده کنید، نمی توانید از از جداول موقت استفاده کنید، اما می توانید از جداول Heap استفاده کنید.
همانطور که قبلا ذکر شد، جداول موقت تنها تا زمانی که جلسه در جریان است، ادامه می یابد.
وقتی که اسکریپت های PHP را اجرا می کنید، وقتی که اجرای PHP تمام شود، جداول موقت نیز پایان می یابد.
اگر به سرور MySQL از طریق سرویس گیرنده MySQL وصل شده اید، یا باید جدول موقت را دستی حذف کنید، یا زمانیکه جلسه کاری تمام شود حذف می شود.
مثال
برنامه ی زیر یک مثال است که چگونگی استفاده از جداول موقت را نشان می دهد.
این تابع را می توان در قالب تابع () mysql_query در PHP استفاده کرد :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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) |
زمانیکه یک دستور SHOW TABLES را اجرا می کنید. جداول موقت در قالب لیست قرار نمی گیرد.
حالا اگر از جلسه ی MySQL خارج شوید و یک دستور SELECT را اجرا کنید، جدول موقت را پیدا نخواهید کرد.
در حالت پیش فرض ، زمانیکه connection دیتابیس تمام شود، تمام جداول موقت حذف می شوند.
اما اگر بخواهید برخی از آن ها را خوتان حذف کنید، می توانید دستور DROP TABLE را اجرا کنید.
برنامه ی زیر یک مثال ساده از حذف یک جدول موقت است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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; ERROR 1146: Table 'TUTORIALS.SalesSummary' doesn't exist |
اگر داده های موقتی در دیتابیس خود دارید که می خواهید موقتا آن ها را در قالب جدولی ذخیره داشته باشید، نیازی به ذخیره آن ها در جداول موجود در دیتابیس نیست، شما به راحتی می توانید همانند مباحث فوق از جداول موقت در MySQL استفاده کنید.