English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,您将学习如何使用SQL创建临时表。
临时表是仅对当前会话可见的表,并且在关闭创建该表的会话时会自动将其删除。
因此,由于临时表不会永久存储在数据库中,因此在您只需要短时间执行或测试某些表,然后希望该表自动消失的情况下,这将很有用。
CREATE TEMPORARY TABLE语句用于创建临时表。
CREATE TEMPORARY TABLE table_name (column definitions);
如果要从头开始创建临时表,则可以在创建表时使用关键字TEMPORARY,即使用CREATE TEMPORARY TABLE代替CREATE TABLE语句。有关完整的语法和示例,请参见“ 创建表一章。
在您只想测试SQL查询而不影响数据库的情况下,临时表可能会很有用。让我们在MySQL数据库中创建现有表的临时副本。
在MySQL命令提示符处键入以下命令,然后按Enter:
mysql> CREATE TEMPORARY TABLE persons SELECT * FROM persons;
上面的语句从现有基表persons的结果集中动态创建一个名为persons的临时表。另外,由于它是persons表的临时副本,因此您可以执行INSERT،UPDATEأوحذفيمكنك إجراء أي عملية مثل SELECT، UPDATE، DELETE، INSERT، دون القلق بشأن تأثيرها على الجدول الأساسي persons.
نصيحة:يمكن أن يكون لديك نفس الاسم للجدول المؤقت والجدول الأساسي الدائم. إذا كان الاسم الذي تحدده لجدولك المؤقت متطابقًا مع الاسم الحالي للجدول الأساسي، سيتم إخفاء الجدول الأساسي حتى يتم حذف الجدول المؤقت.
ملاحظة:بما أن الجداول المؤقتة معينة للجلسة، يمكن لأي جلسة مختلفة استخدام نفس اسم الجدول المؤقت دون تصادم.
سيتم حذف الجداول المؤقتة تلقائيًا عند إغلاق الاتصال أو الجلسة التي أنشئت فيها. ولكن، إذا كنت ترغب في حذفها دون إغلاق الجلسة الحالية، يمكنك استخدام جملة DROP TEMPORARY TABLE كما يلي:
mysql> DROP TEMPORARY TABLE persons;
الجملة أعلاه ستصبحpersonsحذف الجداول المؤقتة من قاعدة البيانات. بعد ذلك، الpersonsجداول الأساسيات ستكون مرئية.