Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:具有派生列的可更新视图;“的等效功能”;而不是“更新”;触发_Mysql_Sql - Fatal编程技术网

MySQL:具有派生列的可更新视图;“的等效功能”;而不是“更新”;触发

MySQL:具有派生列的可更新视图;“的等效功能”;而不是“更新”;触发,mysql,sql,Mysql,Sql,我想要一个具有派生列的视图。例如,我有一个带有字段的表:Qty和Price。然后,我的视图包含这些字段以及计算出的字段数量*价格 我正在使用MySQL。据我所知,如果存在派生表(可更新和可插入的视图--),MySQL不允许视图可编辑 当我使用sqlite时,我能够通过创建一个“而不是更新”触发器来解决这个问题(例如,请参阅stackoverflow响应)。然而,MySQL显然不允许这种类型的触发器。(MySQL触发器语法--) 有没有其他方法可以通过MySQL获得这种功能——即一个包含派生列的视

我想要一个具有派生列的视图。例如,我有一个带有字段的表:Qty和Price。然后,我的视图包含这些字段以及计算出的字段数量*价格

我正在使用MySQL。据我所知,如果存在派生表(可更新和可插入的视图--),MySQL不允许视图可编辑

当我使用sqlite时,我能够通过创建一个“而不是更新”触发器来解决这个问题(例如,请参阅stackoverflow响应)。然而,MySQL显然不允许这种类型的触发器。(MySQL触发器语法--)


有没有其他方法可以通过MySQL获得这种功能——即一个包含派生列的视图,该列也是可编辑的?显然,我可以在没有视图的情况下在应用程序端执行此操作,但如果可能的话,我更希望在数据库端执行此操作。

为什么不设置一个
小计
列,在插入前使用
和更新前使用
触发器将其值设置为数量*价格?

为什么不设置
小计
列,使用插入之前的
和更新之前的
触发器将其值设置为Qty*Price?

是的,我认为这会起作用。在数据库中存储计算值似乎有点不雅观。但这可能是完成工作的一种简单方法。哦,我会在每次访问中都缓存该值。是的,我认为这会奏效。在数据库中存储计算值似乎有点不雅观。但这可能是完成工作的一种简单方法。哦,我会在每次查看时都缓存该值。