MySQL Rename View

摘要:在本教程中,您将学习如何使用RENAME TABLE语句或一系列DROP VIEWCREATE VIEW语句在 MySQL 中重命名视图。

RENAME TABLE 语句简介

在 MySQL 中,视图和表共享相同的命名空间。因此,您可以使用RENAME TABLE语句来重命名视图。

以下是重命名视图的RENAME TABLE的基本语法:

RENAME TABLE original_view_name 
TO new_view_name;Code language: SQL (Structured Query Language) (sql)

在这个语法中:

  • 首先,在RENAME TABLE关键字后指定要重命名的视图的名称。
  • 然后,在TO关键字后指定视图的新名称。

请注意,您不能使用RENAME TABLE语句将视图从一个数据库移动到另一个数据库。如果您尝试这样做,MySQL 将发出错误。

重命名视图的另一种间接方法是使用DROP VIEWCREATE VIEW语句的序列。

  • 首先,使用 SHOW CREATE CREATE VIEW语句获取 CREATE SHOW CREATE VIEW语句。
  • 接下来,复制CREATATE VIEW语句并将其保存到文件中。
  • 然后,使用DROP VIEW语句删除视图。
  • 之后,在CREATE VIEW语句中更改视图的名称。
  • 最后,执行CREATE VIEW语句以使用新名称创建视图。

请注意,通过使用一系列DROP VIEWCREATE VIEW语句,您还可以将视图从一个数据库移动到另一个数据库。

MySQL 重命名 查看示例

让我们举一些重命名视图的例子。

1) 使用RENAME TABLE语句重命名视图示例

首先,创建一个名为productLineSales的新视图用于演示:

CREATE VIEW productLineSales AS
SELECT 
    productLine, 
    SUM(quantityOrdered) totalQtyOrdered
FROM
    productLines
        INNER JOIN
    products USING (productLine)
        INNER JOIN
    orderdetails USING (productCode)
GROUP BY productLine;Code language: SQL (Structured Query Language) (sql)

其次,将视图productLineSales重命名为productLineQtySales

RENAME TABLE productLineSales 
TO productLineQtySales;Code language: SQL (Structured Query Language) (sql)

第三,使用SHOW FULL TABLES检查视图是否已成功重命名:

SHOW FULL TABLES WHERE table_type = 'VIEW';Code language: SQL (Structured Query Language) (sql)

2) 使用DROP VIEWCREATE VIEW序列示例重命名视图

假设您要将视图productLineQtySales的名称更改为categorySales

首先,使用SHOW CREATE VIEW获取视图的定义:

SHOW CREATE VIEW productLineQtySales;Code language: SQL (Structured Query Language) (sql)

这是输出:

MySQL RENAME 视图示例

请注意,您应该复制Create View列中的语句。

其次,删除视图productLineQtySales

DROP VIEW productLineQtySales;Code language: SQL (Structured Query Language) (sql)

第三,更改CREATE VIEW语句的视图名称并执行它:

CREATE VIEW categorySales AS
SELECT 
    productLine, 
    SUM(quantityOrdered) totalQtyOrdered
FROM
    productLines
        INNER JOIN
    products USING (productLine)
        INNER JOIN
    orderDetails USING (productCode)
GROUP BY productLine;Code language: SQL (Structured Query Language) (sql)

概括

  • 使用RENAME TABLE语句重命名视图。
本教程有帮助吗?