English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,您将学习如何创建现有表的副本。
在某些情况下,您可能只想创建一个现有表的精确副本或克隆以测试或执行某些操作而又不影响原始表。
下一节将通过几个简单的步骤说明如何执行此操作。
首先使用以下语句根据原始表的定义创建一个空表。它还包括原始表中定义的列属性和索引:
CREATE TABLE new_table LIKE original_table;
现在,使用以下语句用原始表中的数据填充空表:
INSERT INTO new_table SELECT * FROM original_table;
让我们使用MySQL命令行工具克隆表。
考虑我们employees的数据库中有一个包含以下记录的表:
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 5000 | 4 | | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | | 4 | Rick Deckard | 2007-01-03 | 7200 | 3 | | 5 | Martin Blank | 2008-06-24 | 5600 | NULL | +--------+--------------+------------+--------+---------+
تنفيذ الجملة SQL التالية، التي تضيف بناءً على الحاليemployeesتحديد تعريف جدول قاعدة البيانات إنشاء جدول فارغemployees_clone.
employees_clone employees;
الآن، تنفيذ جملة SQL أخرى، والتي تضيف جميع السجلات من جدول employee إلى جدول employees_clone. بعد تنفيذ هذه الجملة، ستحصل على جدول employee_clone، وهو نسخة دقيقة أو نسخة من جدول employee.
employees_clone * employees;
لكن، إذا كنت ترغب في إنشاء جدول من جدول آخر دون النظر في أي خصائص عمود أو مؤشر، يمكنك استخدام جملة واحدة بسيطة:
CREATE TABLE new_table SELECT * FROM original_table;
تقوم الأوامر التالية بإنشاءemployeesنسخة بسيطة من الجدول.
employees_dummy * employees;
إشارة:يمكنك استخدام جملة CREATE TABLE ... SELECT لإنشاء نسخة بسيطة من أي جدول يحتوي فقط على بنية الجدول والبيانات من الجدول المصدر.