在mysql中禁用内联查询的严格sql模式
我可以介绍一下如何在mysql中禁用存储过程或内联查询的严格sql模式吗? 我只想禁用单个sp/查询或单个数据库。 我试过的是在mysql中禁用内联查询的严格sql模式,mysql,configuration,Mysql,Configuration,我可以介绍一下如何在mysql中禁用存储过程或内联查询的严格sql模式吗? 我只想禁用单个sp/查询或单个数据库。 我试过的是 set sql_mode='' ;INSERT INTO system_log(appname, action, level, thread_id, context, context_id,market_id, message,transaction_id,primary_msisdn,primary_issuer
set sql_mode='' ;INSERT INTO system_log(appname, action, level, thread_id, context,
context_id,market_id, message,transaction_id,primary_msisdn,primary_issuer
,secondary_msisdn,secondary_issuer, merchant_id,acquirer_id)
VALUES(
@appname, @action,@level, @thread_id, @context
, @context_id
,@market_id
,CASE WHEN @message = 'NULL' THEN NULL ELSE @message END
,@transaction_id
,@primary_msisdn
,@primary_issuer
,@secondary_msisdn,@secondary_issuer, @merchant_id,@acquirer_id
);
您必须设置sql_模式服务器系统变量的会话版本:
SET SESSION sql_mode = ''; --no mode set
之后,您可以通过将其设置为适当的值来恢复sql_模式
<>但是,我宁愿考虑重写存储过程,以便不必更改SQL模式。实际上它是插入数据的Log4NET-AdoNET Appnor的内联脚本。我所做的只是用set sql_mode=''附加查询;插入到系统日志中(appname、action、level、thread\u id、context…,它似乎工作得很好。SET SESSION sql\u mode='';和SET sql\u mode=''之间的区别是什么;没有区别,它们是一样的。但是,请将其设置回查询后的状态。如果它是一个单独的数据库,请让我知道即使在会话上更改它也会影响其他会话。)不同的分贝与否。