SQL - 重命名錶



SQL 提供了兩種重新命名 MySQL 表的方法。您可以使用 SQL RENAME TABLE 或 ALTER TABLE 語句來更改 MySQL RDBMS 中的表名。

SQL RENAME TABLE 語句

您可以使用 SQL **RENAME TABLE** 語句更改 MySQL 表名。

語法

以下是 SQL RENAME TABLE 語句的語法:

RENAME TABLE table_name TO new_table_name;

其中,**table_name** 是現有表的當前名稱,**new_table_name** 是表的新名稱。

示例:SQL RENAME TABLE 語句

讓我們建立一個表,名稱為 **CUSTOMERS**,其中包含客戶的個人詳細資訊,包括姓名、年齡、地址和工資等,如下所示:

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

現在,讓我們使用 INSERT 語句將幾條記錄插入此表中,如下所示:

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );

表將如下建立:

ID 姓名 年齡 地址 工資
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

以下 SQL 查詢將 **CUSTOMERS** 表的名稱更改為 **BUYERS**:

RENAME TABLE CUSTOMERS to BUYERS;

驗證

更改表名後,您可以開始在 SQL 查詢中使用新表名。

SELECT * FROM BUYERS;

如果表名已成功更改,則它應列出 CUSTOMERS 表中所有可用的記錄。

SQL ALTER TABLE 語句

**ALTER TABLE** 語句可用於更改或修改現有表的結構,即使用此語句,您可以新增/刪除列、建立/銷燬索引、更改現有列的資料型別、重新命名列,我們甚至可以重命名錶。

語法

以下是使用 SQL **ALTER TABLE** 語句重新命名現有表的語法:

ALTER TABLE table_name RENAME [TO|AS] new_table_name

示例:SQL ALTER TABLE 語句

以下 SQL **ALTER TABLE** 語句會將表名從 **BUYERS** 更改為 **CUSTOMERS**。

ALTER TABLE BUYERS RENAME TO CUSTOMERS;

驗證

將表名更改為 CUSTOMERS 後,您可以在 SQL 查詢中使用此名稱。

SELECT * FROM CUSTOMERS;

這將產生以下結果

ID 姓名 年齡 地址 工資
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

在 SQL Server 中重命名錶

SQL Server 中沒有可以直接重命名錶的查詢。但是,它確實提供了名為 **sp_rename** 的儲存過程,使您可以重命名錶。

**sp_rename** 是 SQL 中的系統儲存過程(一組預構建的子例程,用於執行資料庫內的任務),可用於重新命名各種資料庫物件,包括表、列、索引和約束。

語法

以下是 SQL Server 中重命名錶的簡單語法:

EXEC sp_rename 'old_table_name', 'new_table_name'

這裡,您必須確保資料庫中存在舊錶名,並且新表名不存在。否則,它將發出警告。第二個要點是確保表未被鎖定,並且沒有涉及此表的活動事務。

示例:在 SQL Server 中重命名錶

假設我們的資料庫中已經存在 CUSTOMERS 表。現在,我們將使用以下查詢將此表從 **CUSTOMERS** 重新命名為 **WORKERS**:

EXEC sp_rename 'CUSTOMERS', 'WORKERS';

輸出

獲得的結果如下所示:

Completion time: 2023-08-15T19:21:49.1144163+05:30

驗證

我們可以透過使用 SELECT 語句檢索其內容來驗證更改是否已反映,如下所示:

SELECT * FROM WORKERS;

這將列出 WORKERS 表中所有可用的記錄,如下所示:

ID 姓名 年齡 地址 工資
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 Kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 Hyderabad 4500.00
7 Muffy 24 Indore 10000.00

因為您已將表重新命名為 WORKERS,所以如果您嘗試使用舊錶名獲取詳細資訊,它將丟擲錯誤,表明表不存在。

重命名錶時應遵循的規則

在 SQL 中重命名錶時,應遵循一些規則和最佳實踐,以確保重新命名過程順利進行,並且不會導致任何意外的後果或問題。

  • **避免重命名系統表** - 系統表是由資料庫管理系統本身建立和使用的表。重新命名這些表可能會導致資料庫系統功能出現問題,因此通常不建議重命名系統表。

  • **更新對錶的全部引用** - 重命名錶後,任何引用該表的儲存過程檢視、觸發器或其他資料庫物件都需要更新為使用表的新名稱。未能更新這些引用可能會導致錯誤或資料庫系統功能出現問題。

  • **徹底測試** - 在生產環境中重命名錶之前,務必在開發或測試環境中徹底測試重新命名過程,以確保已正確更新對錶的全部引用,並且資料庫系統繼續按預期執行。

  • **使用一致的命名約定** - 對於表和其他資料庫物件,最好使用一致的命名約定,以便更容易理解和維護資料庫系統。如果您需要重命名錶,請考慮遵循您在資料庫中其他表中使用的相同命名約定。

  • **備份資料庫** - 在重命名錶之前,建議建立資料庫備份,以確保您有一個還原點;如果重新命名過程中出現任何問題。

廣告