【问题标题】:Is there a way to add a column into an existing view in mysql?有没有办法将列添加到mysql中的现有视图中?
【发布时间】:2011-11-18 06:24:39
【问题描述】:

对于一张桌子,我可以这样做:

ALTER TABLE table_name  
ADD column_name datatype

但这不适用于现有视图。不知道有没有办法解决这个问题?

【问题讨论】:

    标签: mysql database view


    【解决方案1】:

    使用 Alter View 语句编辑视图。只需在当前视图中使用现有的 SQL 语句,并将列添加到末尾即可。

    http://dev.mysql.com/doc/refman/5.0/en/alter-view.html

    比实际文档更详细的解释可以在这里找到:

    http://www.roseindia.net/mysql/mysql5/views.shtml

    编辑 - 添加

    视图只能显示现有表中的数据。您必须将该列添加到表中,然后修改视图以显示它。

    这样想:视图只是查看表中现有数据的一种方式。表格是真实数据的持有者。

    我能想到的上述模式的唯一例外是,您可以在视图上有一个列,其中填充了计算结果,例如加法或字符串争用。例如,考虑一个包含 EmployeeId、FirstName 和 LastName 列的表...

    你可以有一个看起来像这样的视图:

    Create View FullNames AS
    Select EmployeeId, firstname + ' ' + lastname AS FullName from Employees
    

    在这种情况下,我有点添加了一个表中不存在的列 - FullName。它是基于表格数据的计算值。但是,它仍然基于存储在某处的数据库中的数据。

    【讨论】:

    • 我了解他们如何将列添加到现有视图中,但他们使用“选择”语句,这意味着该列必须来自其他一些表。我的意思是我可以像 alter table 语句对表一样在视图中创建一个全新的列吗?
    • 我还在寻找一种将列添加到视图的方法(假设该列已经存在于基础表中)。我不认为这是可能的,因为一旦你开始拥有基于复杂连接等的视图,它就没有任何意义了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    相关资源
    最近更新 更多