Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho um registro que esta sendo referenciado em outra tabela como chave estrangeira. Ao tentar deletá-lo, creio que o próprio SGBD não deve permitir dar um delete nele. Mas meu banco executa o delete. Tem alguma coisa que não percebi? seque o código em anexo

select * from cursos:
id nome
1 matematica
select * from pessoas:
id nome cursoFavorito
1 fulano 1
2 beltrano 2você tinha deletado o 1.
A chave é autoincrement e numerica algo errado aqui ...
>
2 horas atrás, Motta disse:
você tinha deletado o 1.
A chave é autoincrement e numerica algo errado aqui ...
quando você fala que a chave é numérica, se refere a ela ser tipo int?
é autoincrement pra não precisar declarar ela toda vez que inserir um novo registro
Como você não declarou a opção "cascade" deveria ficar "restrict" e não permitir.
Não vejo realmente o motivo.
Mas não deletou no seu exemplo.
https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html
Deletou, no select * from cursos, já não tem o curso 2.
To quebrando a cabeça com isso pra poder continuar o projeto com um banco íntegroMas você deletou o id 1 ...e ele tá lá
Faz de novo , dropa tudo , não informa o id no insert e deleta com
Where nome = 'matenatica'
Funciona , acredite.>
Em 06/09/2019 at 23:10, agness disse:
select * from cursos:
id nome
1 matematica
select * from pessoas:
id nome cursoFavorito
1 fulano 1
2 beltrano 2
aqui eu fiz o teste com delete where id=2Refaça o teste , não informe id no insert , e delete sem converter para string
Desinstalei o wamp e instalei o xampp e não está mais com esse problema, desconfio que o mysql do wamp estivesse mal configurado ou algo assim
o que retorna