在mysql中禁用内联查询的严格sql模式

时间:2015-10-06 09:43:46

标签: 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
                        ,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

                          );

1 个答案:

答案 0 :(得分:2)

您必须设置sql_mode服务器系统变量的会话版本:

SET SESSION sql_mode = ''; --no mode set

之后,您可以通过将sql_mode设置为适当的值来恢复它。

但是,我宁愿考虑重写存储过程,以便您不必更改sql模式。