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