存储过程是否可以调用截断视图表并将数据输入到MySql中的视图表

时间:2013-10-21 16:37:52

标签: mysql sql database stored-procedures view

如何从MySql中的存储过程中截断视图表。首先尝试执行以下查询,该查询失败可能是错误“TRUNCATE TABLE tester”。 Tester是我在mysql的create视图中创建的视图表。我想截断视图表并通过存储过程输入新行。

1 个答案:

答案 0 :(得分:1)

TRUNCATE TABLE不适用于观看次数。

您可以DELETE FROM tester,如果视图是可更新视图,它将DELETE应用于基础表。但是DELETE比TRUNCATE慢,因为DELETE必须做一些簿记以确保它可以回滚,而TRUNCATE不能回滚。

您可以改为TRUNCATE TABLE table_tester_is_based_on,但正如@fancyPants所提到的那样,请确保这是您想要做的,因为它将处理基表中的所有数据。 MySQL视图不存储基表的副本,它们更像是针对基表的查询的别名。