如何从 MySql 中的存储过程中截断视图表。首先尝试执行以下查询失败,可能是错误“TRUNCATE TABLE tester”。Tester 是我从 mysql 中的创建视图创建的视图表。我想截断视图表并通过存储过程输入新行。
问问题
783 次
1 回答
1
TRUNCATE TABLE
不适用于视图。
您可以DELETE FROM tester
,如果视图是可更新的视图,它会将 DELETE 应用于基础表。但是 DELETE 比 TRUNCATE 慢,因为 DELETE 必须做一些记账以确保它可以回滚,而 TRUNCATE 不能回滚。
您可以改为这样做TRUNCATE TABLE table_tester_is_based_on
,但正如@fancyPants 所提到的,请确保这是您想要做的,因为它会处理基表中的所有数据。MySQL 视图不存储基表的副本,它们更像是针对基表的查询的别名。
于 2013-10-21T16:50:03.187 回答