Chegando um pouco atrasado, mas enfim...
Pra que complicar?
Sério que nenhuma IA te mostrou o mais óbvio e simples? Segue um exemplo em MySQL:
CREATE TABLE TEST (
id INT NOT NULL PRIMARY KEY,
value VARCHAR(10),
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
);
Pronto, sem trigger nem complicações desnecessárias, apenas a definição de colunas com valores default na inserção ou atualização.
No caso, created_at
não pode ser nulo, então se vc não informar um valor no INSERT
, ele usará a data atual. Ou seja, se eu fizer:
INSERT INTO TEST(id, value) VALUES (1, 'abc');
A tabela ficará assim:
id | value | created_at | updated_at |
---|---|---|---|
1 | abc | 2025-04-02 10:56:12 |
Repare que eu não informei o created_at
, então ele assume o valor default, que é a data atual (CURRENT_TIMESTAMP
).
Já updated_at
pode ser nulo, e somente no UPDATE
ele é setado para a data atual.
Ou seja, se seu fizer:
UPDATE test SET value='xyz' WHERE id=1;
Agora a tabela fica assim:
id | value | created_at | updated_at |
---|---|---|---|
1 | xyz | 2025-04-02 10:56:12 | 2025-04-02 11:00:05 |
Repare que o campo updated_at
não foi informado no UPDATE
, sendo assim ele é automaticamente alterado para o valor definido na definição da coluna (que no caso também é a data atual).
E pronto. Outros bancos também possuem este recurso, talvez mude um pouquinho a sintaxe, mas a ideia é a mesma: na própria definição da tabela, informar os valores default para inserção ou atualização. Eu usaria triggers somente se o banco não tivesse tal recurso (alguns possuem somente para inserção, por exemplo), caso contrário estaria complicando à toa (ou, se o sistema for muito simples, setar as datas manualmente mesmo).
Por fim, sobre o uso de IA's: se nenhuma te sugeriu isso, talvez seja porque elas ainda não estão tão boas assim, ou então vc que não soube fazer a pergunta correta (não dá pra saber qual foi, e talvez seja até uma combinação de ambos).
Aqui temos um exemplo bem interessante que vou abordar um dia com mais profundidade em um exercício de socio/psicologia.
A pessoa usou várias IAs para ajudar ter uma informação melhor, o que é bomk. As IAs deram respostas divergentes e a pessoa então ficou confusa e preferiu perguntar para humanos qual é o certo, o que é bom.
Mas e se a pessoa escolhesse uma delas sem perguntar para um humano? Se as respostas não fossem divergentes? Se ela não tivesse usado mais que uma?
Se a resposta fosse ruim, teríamos um caso clássico de IA piorando o s=desenmpenho do ser humano. E aco nteceria mesmo porque as pessoas que não são extremamente experientes, não só em tempo, mas em qualidade, aceitariam o fato como certo porque ele funcionou (já vi usuários teoricamente experiente argumentar comigo que eu estava errado porque o que ele fez foi aceito pelo compulador), mesmo que não fosse adequado. Este caso me parece que todos funcionariam, inclusive de algumas respostas, mas não é certo. Sim, existe um certo, algumas coisas que funcionam mas não é o certo e infinitas que sequer funcionam, o que é a parte boa.
Então conluímos algumas coisas:
- Para pessoas com plena faculdade mental, sites coimo o Tabnews, Stack Overflow e assemelhados ainda deveriam ter muito uso, talevz agora mais ainda, a para isso precisamos aprender usá-los corretamente. O SO sempre foi bom porque exigiu o básico das pessoas, que elas entende ssem o ambienete, que seguisse regras para obter respostas de grandes especialistas (o SO está morrendo até porque os especialistas não querem mais responder perguntas ruins, mas isso é outras questão).
- A IA é burra e não sabe qual é o certo, ela só vomita textos que tem uma chance razoável de estar certa, mas frequentemente só tangencia isso, ou seja, entrega coisas que funcionam, mas não são certas.
- Não podemos depender de IA, ela só tratará mais qualidade (bem pouco, vai até atrapalhar na maioria dos casos) e principalmente produtividade se a pessoa souber oque está fazendo, se ela não precisar da IA para fazer aquilo, ela está usando apenas para ter algo rápido.
- A IA não serve para ensinar nada a ninguém, ela não sabe o certo, ela cospe um conhecimento adquirido por meios não inteligentes, o que ela produz não é a verdade, pelo contrário, e tentar aprender com ela é um tiro no pé.
- Apesar do OP aqui ter feito algo que ajudou não acertar o tiro no pé, sabemos que a realidade não é essa, a pessoa quase sempre vai usar apenas uma IA e vai aceitar aquilo, piorando o que estamos fazendo. Para usarmos várias começa perder a produtividade e pode causar mais confusão. Tem cenários que seria bem pior que esse. Imagine se as três desses a mesma resposta errada que funciona, o estrago estaria feito.
- Além disso percebeoms que a IA não funciona igual a ter vários motores em um avião, não é porque usamos mais de um que teremos mais segurança (aliás mais de 2 motores aumenta marginamente a segurança, quando mais de um falhou geralmente falhou os 3 ou 4 quando tinha), e podemos ter a falsa sensação de segurança. Isso é trágico para a humanidade, é aí onde a IA causará destruição, fazendo as pessoas emburrecerem.
- Depois disso vamos entender mais ainda que não adiantará nada, porque mesmo muitas pessoas lendo isso (nem serão tantas porque já está sendo escanteado pelo algoritmo) ainda quase todas que não sabia e se cuidavam, vão continuar indo com a manada, vamos querer estar par e passo com os demais que estão usando IA desenfreadamente.
Reforço, você tem que usar IA para ser mais produtivo, mas é só isso, ela deve ser usada como calculadora, nada mais. Você continua tendo quer ser pica no que está fazendo, tem que aprender por fontes confiáveis, precisa aceitar que tem momentos que a IA te deixará na mão e você precisa resolver o problema sem ela, e que ela não vai melhorar tanto quanto alguns falam. A´te vai melhorar mais um pouco algumas mais específicas.
Devemos tomar mais cuidado com os resultados positivos dela, porque isso vai criando a ilusão que ela é boa. Eu tendo isso muito consciente na cabeça me pego caindo na armadilha.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).
Muito boa essa estratégia, não conhecia.
Mas precisamos tomar alguns cuidados em relação a isso.
Por exemplo, será que é necessário realizar a alteração da updated_at
toda vez que tiver uma atualização no registro, mesmo que essa alteração seja uma manutenção manual?
Fazer com trigger poderia cair no mesmo dilema, por isso, muitas vezes prefiro que a aplicação tome conta disso.