A partir da leitura da documentação sobre os modos do servidor MySQL :
The MySQL server can operate in different SQL modes, and can apply these modes differently for different clients, depending on the value of the sql_mode system variable. DBAs can set the global SQL mode to match site server operating requirements, and each application can set its session SQL mode to its own requirements.
e mais tarde
Setting the GLOBAL variable requires the SUPER privilege and affects the operation of all clients that connect from that time on. Setting the SESSION variable affects only the current client. Each client can change its session sql_mode value at any time
Basicamente, a configuração no arquivo de configuração controla apenas o padrão. Clientes individuais e aplicativos ainda estão livres para fazer o que quiserem, se estiverem dispostos a trabalhar para definir as configurações da sessão. Se você ativar o general_log
, poderá realmente assistir a isso, conforme os clientes se conectam e executam consultas.
Como um aparte, acho que a responsabilidade de validar os dados deve estar no código do aplicativo e não no data-store. Você adiciona uma camada fina à estrutura geral do aplicativo, garantindo que INSERTS
esteja em conformidade com seus requisitos.