在 mysql 中禁用内联查询的严格 sql 模式
Disable strict sql mode for a inline query in mysql
可以告诉我如何为 mysql 中的存储过程或内联查询禁用严格 sql 模式吗?
我只想禁用单个 sp/query 或单个数据库。
我试过的是
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_mode 服务器系统变量的会话版本:
SET SESSION sql_mode = ''; --no mode set
之后您可以通过将其设置为适当的值来恢复 sql_mode。
但是,我宁愿考虑重写存储过程,这样您就不必更改sql模式。
可以告诉我如何为 mysql 中的存储过程或内联查询禁用严格 sql 模式吗? 我只想禁用单个 sp/query 或单个数据库。 我试过的是
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_mode 服务器系统变量的会话版本:
SET SESSION sql_mode = ''; --no mode set
之后您可以通过将其设置为适当的值来恢复 sql_mode。
但是,我宁愿考虑重写存储过程,这样您就不必更改sql模式。