使用 CREATE TABLE ... LIKE
來根據另一個資料表的定義建立一個空的資料表,包括原始資料表中所定義的任何欄位屬性和索引。
CREATE TABLE new_tbl LIKE orig_tbl;
複製是使用與原始資料表相同版本的資料表儲存格式建立的。原始資料表需要 SELECT
權限。
LIKE
僅適用於基本資料表,不適用於檢視表。
當 LOCK TABLES
語法生效時,您無法執行 CREATE TABLE
或 CREATE TABLE ... LIKE
。
CREATE TABLE ... LIKE
執行與 CREATE TABLE
相同的檢查。這表示如果目前的 SQL 模式與建立原始表格時生效的模式不同,則表格定義可能會被認為對新模式無效,並導致語句失敗。
對於 CREATE TABLE ... LIKE
,目標表格會保留原始表格的生成欄位資訊。
對於 CREATE TABLE ... LIKE
,目標表格會保留原始表格的表達式預設值。
對於 CREATE TABLE ... LIKE
,目標表格會保留原始表格的 CHECK
約束,但所有約束名稱都會被產生。
CREATE TABLE ... LIKE
不會保留為原始表格指定的任何 DATA DIRECTORY
或 INDEX DIRECTORY
表格選項,也不會保留任何外鍵定義。
如果原始表格是 TEMPORARY
表格,則 CREATE TABLE ... LIKE
不會保留 TEMPORARY
。若要建立 TEMPORARY
目標表格,請使用 CREATE TEMPORARY TABLE ... LIKE
。
CREATE TABLE ... LIKE
操作會將所有 ENGINE_ATTRIBUTE
和 SECONDARY_ENGINE_ATTRIBUTE
值套用到新表格。