在AWS RDS中,会话和全局SQL模式下的设置值可能会产生差异,在会话中设置的值可能会覆盖全局SQL模式的设置值。为了解决这个问题,可以通过以下步骤进行设置:
SHOW GLOBAL VARIABLES LIKE 'sql_mode';
它将返回当前的全局SQL模式设置值。
SET SESSION sql_mode = 'modes';
其中'modes'是在会话中需要设置的SQL模式。
例如,如果全局SQL模式设置为“ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION”,并且您想在当前会话中禁用“ONLY_FULL_GROUP_BY”模式,可以使用以下SQL语句:
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
这将覆盖全局设置并仅在当前会话中禁用“ONLY_FULL_GROUP_BY”模式。
SHOW VARIABLES LIKE 'sql_mode';
这将返回会话当前的SQL模式设置值。
通过这些步骤,您可以避免会话和全局SQL模式设置值之间的冲突。