存储过程是不是可以调用截断 veiw 表并将数据输入到 MySql 中的视图表中[关闭]
Posted
技术标签:
【中文标题】存储过程是不是可以调用截断 veiw 表并将数据输入到 MySql 中的视图表中[关闭]【英文标题】:Can a stored procedure call truncate veiw table and enter data to the view table in MySql [closed]存储过程是否可以调用截断 veiw 表并将数据输入到 MySql 中的视图表中[关闭] 【发布时间】:2013-10-21 16:37:51 【问题描述】:如何从 mysql 中的存储过程中截断视图表。首先尝试执行以下查询失败,可能是错误“TRUNCATE TABLE tester”。 Tester 是我从 mysql 中的 create view 创建的视图表。我想截断视图表并通过存储过程输入新行。
【问题讨论】:
视图不是表格。您只能截断表格。但可以肯定的是,如果你真的想这样做!阅读有关视图... 【参考方案1】:TRUNCATE TABLE
不适用于视图。
您可以DELETE FROM tester
,如果视图是可更新视图,它将对基础表应用 DELETE。但是 DELETE 比 TRUNCATE 慢,因为 DELETE 必须做一些记账以确保它可以回滚,而 TRUNCATE 不能回滚。
您可以改为使用TRUNCATE TABLE table_tester_is_based_on
,但正如@fancyPants 所提到的,请确保这是您想要做的,因为它会处理基表中的所有数据。 MySQL 视图不存储基表的副本,它们更像是针对基表的查询的别名。
【讨论】:
以上是关于存储过程是不是可以调用截断 veiw 表并将数据输入到 MySql 中的视图表中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章