Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131

Deprecated: A função WP_Dependencies->add_data() foi chamada com um argumento que está obsoleto desde a versão 6.9.0! Os comentários condicionais do IE são ignorados por todos os navegadores compatíveis. in /home/devtools/public_html/blog/wp-includes/functions.php on line 6131
ERROR 1363: There is no OLD row in on INSERT trigger

ERROR 1363: There is no OLD row in on INSERT trigger

Quadrado vermelho com a letra X dentro na cor branca.
ERROR 1363: There is no OLD row in on INSERT trigger

Nesta semana o colega Glauber Hofman me pediu um apoio na criação de um trigger, ele estava tendo dificuldades na hora de inserir registros na tabela que o trigger estava vinculado, no entanto, o gatilho já havia compilado no banco de dados.

O erro apresentado pelo MySQL era:

ERROR 1363: There is no OLD row in on INSERT trigger

O trigger em questão “deveria” inserir na tabela de log os registros antigos (old) depois (after) da inserção (insert). Como mencionei, o trigger compilou sem problemas, só que ao momento em que um registro era inserido na tabela, o erro acima era apresentado.

O motivo do erro?

No insert não temos um valor antigo, somente o novo valor que será registrado, desta forma o banco de dados nos alerta através do erro 1363 que, não é possível se ter um valor antigo para um novo registro.

De forma semelhante, também podemos ter o erro:

ERROR 1363: There is no NEW row in on DELETE trigger

Neste formato, temos um trigger tentando inserir um registro novo após um delete, algo que não existe, afinal, o novo registro “sumiu”.

A solução?

Para resolver o problema no caso do insert, troque o after por before, e o old, por new.

Já para o delete, use o before e, troque o new pelo old.

Se ainda ficou na dúvida, quer agradecer (me dar $$), poste seu comentário, terei o maior prazer em responder.

4 comentários em “ERROR 1363: There is no OLD row in on INSERT trigger”

Deixe um comentário