【发布时间】:2017-08-22 11:24:50
【问题描述】:
我在尝试在 MySQL 数据库中执行查询时遇到此错误:
SQL 错误 (1231):变量 'optimizer_switch' 无法设置为 'derived_merge=OFF' 的值
查询:
use <dbname>;
set global optimizer_switch='derived_merge=off';
我想执行查询来解决我在更新 edmx 时遇到的其他问题,并且我从答案 here 获得了该查询。
我正在使用:MySQL:5.6.26,EF:6.1.4
【问题讨论】:
-
假设 EF 架构首先使用 DB,您是否尝试使用
SELECT @@GLOBAL.optimizer_switch或SELECT @@optimizer_switch进行检查?如果双@有效,请尝试使用SET @@optimizer_switch='derived_merge=OFF'。 -
选择@@GLOBAL.optimizer_switch;确实有效,但我不能使用:SET @@optimizer_switch='derived_merge=OFF',给出相同的错误,但是我注意到一件事,当我选择 optimizer_switch 时,'derived_merge' 不存在。
-
AFAIK from MySQL KB
derived_merge选项在 5.6.x 或更早版本上不可用:dev.mysql.com/doc/refman/5.6/en/switchable-optimizations.html(与同一主题中的 5.7.x 比较:dev.mysql.com/doc/refman/5.7/en/switchable-optimizations.html)。检查 5.6.x 中派生表的一些详细信息:dev.mysql.com/doc/refman/5.6/en/derived-table-optimization.html。
标签: mysql asp.net-mvc entity-framework edmx