Normalmente você receberá um erro quando tentar fazer um
INSERT
/ UPDATE
de um
registro que cause uma violação de uma chave primária,
chave única ou chave estrangeira. Se você estiver usando um
mecanismo de armazenamento transacional, como InnoDB, o MySQL
automaticamente fará um rollback da transação. Se você
estiver usando mecanismos de armazenemento não transacionais
o MySQL irá para no registro errado e deiar o resto dos
registros se processamento.
Para tornar a vida mais fácil o MySQL adicionou suporte a
diretiva IGNORE
para a maioria dos comandos
que podem causar uma violação de chave (como INSERT
IGNORE ...
). Neste caso o MySQL irá ignorar
qualquer violação de chave e continuará com o processamento
do próximo registro. Você pode obter informação sobre o
que o MySQL fez com a função da API
mysql_info()
API function e em versões
posteriores do MySQL 4.1 com o comando SHOW
WARNINGS
. See Secção 12.1.3.30, “mysql_info()
”. See
Secção 4.6.8.9, “SHOW WARNINGS | ERRORS
”.
Note que no momento apenas as tabelas
InnoDB
suportam chaves estrangeiras. See
Secção 7.5.5.2, “Restrições FOREIGN KEY
”.
O suporte a chaves estrangeiras nas tabelas
MyISAM
está programado para ser incluída
na arvoré de fonte do MySQL 5.0.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.