O que acontece se o UPDATE CASCADE fizer, por exemplo, o update do id de um aluno de 2 para 10 mas algum aluno já estiver utilizando este id e este campo esteja caracterizado como UNIQUE?
O que acontece se o UPDATE CASCADE fizer, por exemplo, o update do id de um aluno de 2 para 10 mas algum aluno já estiver utilizando este id e este campo esteja caracterizado como UNIQUE?
Oi, Gabriel, tudo bem?
No PostgreSQL, se você tentar fazer um UPDATE
em uma coluna que está definida como UNIQUE
para um valor que já existe, o sistema retornará um erro. Isso acontece porque a restrição UNIQUE
garante que todos os valores em uma coluna ou conjunto de colunas sejam diferentes.
No seu exemplo, se tentar atualizar o id de um aluno de 2 para 10 e esse id 10 já estiver sendo utilizado por outro aluno, o PostgreSQL retornará um erro, pois a restrição UNIQUE
estaria sendo violada.
Vamos a um exemplo prático. Imagine que temos uma tabela "aluno" com os seguintes dados:
id | nome |
---|---|
2 | Gabriel |
10 | João |
Se tentarmos executar o seguinte comando:
UPDATE aluno
SET id = 10
WHERE id = 2;
O PostgreSQL retornará um erro, pois o id 10 já está sendo utilizado pelo aluno João.
Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!