Ao importar um banco de dados MySQL, você pode encontrar o erro "1418 (HY000) na linha 10185: Esta função não possui DETERMINISTIC, NO SQL ou READS SQL DATA em sua declaração e o registro binário está ativado (você pode usar a variável menos segura log_bin_trust_function_creators)." Este erro ocorre quando você não especificou a natureza determinística de uma função no banco de dados.
Para resolver esse erro, você pode usar um dos dois métodos:
Método 1: Temporariamente Desativar registro binário
SET GLOBAL log_bin_trust_function_creators = 1;
Método 2: configurar o arquivo mysql.ini
log_bin_trust_function_creators = 1;
Ao definir esse valor como 1, você relaxa a verificação de funções não determinísticas. Esta opção deve ser usada com cautela, pois pode comprometer potencialmente a integridade dos seus dados.
Compreendendo as funções determinísticas
Para evitar esse erro no futuro, uma abordagem melhor é usar declarações determinísticas para funções armazenadas. Estas declarações informam ao MySQL se a função sempre produz o mesmo resultado para os mesmos parâmetros de entrada. Aqui estão as diferentes declarações determinísticas:
DETERMINISTIC:
NÃO DETERMINÍSTICO:
READS SQL DATA:
NO SQL:
CONTAINS SQL:
Escolhendo a declaração correta
Selecionando a declaração correta a declaração de uma função depende de seu comportamento. Se a saída da função depender de fatores externos ao banco de dados, como a hora atual ou um gerador de números aleatórios, ela deverá ser declarada como NOT DETERMINISTIC. Se a função apenas lê dados, ela pode ser declarada como READS SQL DATA. Se a função não contiver nenhuma instrução SQL, ela poderá ser declarada como NO SQL.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3