On duplicate key update

1

Category : Banco de Dados

Tá ai um recurso que achei magnifico no MySQL 5, talvez não seja mais novidade para niguém, mas para mim foi bem interessante descobrir que não preciso mais fazer um update na minha abstração de dados, posso fazer tudo com insert e caso uma das chaves já esteja cadastrada o MySQL dispara um update.

O procedimento é muito simples, basta que você tenha uma primary key ou um index único e você poderá utilizar esta técnica.

Exemplo:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;

O comando acima irá atualizar a coluna c com o valor de c+1 quando a primary ou o index for duplicado.

Você pode indicar outros campos para serem atualizados também.

Exemplo:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1, b=now();

É uma técnica simples, mas que pode ganhar muito tempo de projeto dependendo da sua aplicação.

Para saber mais:
 


Tags BlogBlogs: mysq, banco de dados, duplicate key