CREATE TABLE LIKE
语法在 MySQL 中用于创建一个新的表,其结构与现有的另一个表完全相同,但不包含源表的数据。这是一种快速复制表结构而不复制数据的方法。
语法
示例
假设你有一个名为 employees
的表,你想创建一个名为 employees_backup
的新表,其结构与 employees
相同,但不包含任何数据。你可以使用以下 SQL 语句:
说明
-
new_table_name
:新表的名字。 -
existing_table_name
:你希望复制其结构的现有表的名字。
注意事项
-
CREATE TABLE LIKE
只会复制表的结构,包括列定义、索引等,但不会复制数据。 - 如果你想要复制数据,可以结合
INSERT INTO ... SELECT
语句使用。
示例:创建表并填充数据
如果你不仅想复制结构,还想复制数据,可以使用以下步骤:
- 创建新表:
- 插入数据:
示例:复制表结构并添加约束
如果你想要复制表结构的同时添加一些新的约束或修改某些列的定义,你可以使用 CREATE TABLE
语句,并指定所有列和约束:
在这个例子中,我们复制了 employees
表的结构,并添加了一个新的外键约束。AS SELECT * FROM employees;
部分用于同时复制数据。
总结
CREATE TABLE LIKE
是一种非常方便的方法来快速创建一个具有相同结构的新表。如果你需要复制数据,可以结合 INSERT INTO ... SELECT
语句使用。