1.9.6.1. PRIMARY KEY and UNIQUE Index Constraints
Normally, an error occurs when you try to
INSERT or UPDATE a row
that causes a primary key, unique key, or foreign key
violation. If you are using a transactional storage engine
such as InnoDB, MySQL automatically rolls
back the statement. If you are using a non-transactional
storage engine, MySQL stops processing the statement at the
row for which the error occurred and leaves any remaining rows
unprocessed.
If you want to ignore such key violations, MySQL supports an
IGNORE keyword for
INSERT and UPDATE. In
this case, MySQL ignores any key violations and continues
processing with the next row. See Section 13.2.4, “INSERT Syntax”,
and Section 13.2.10, “UPDATE Syntax”.
You can get information about the number of rows actually
inserted or updated with the mysql_info() C
API function. In MySQL 4.1 and up, you also can use the
SHOW WARNINGS statement. See
Section 25.2.3.34, “mysql_info()”, and
Section 13.5.4.28, “SHOW WARNINGS Syntax”.
Currently, only InnoDB tables support
foreign keys. See
Section 14.2.6.4, “FOREIGN KEY Constraints”. Foreign key
support in MyISAM tables is scheduled for
implementation in MySQL 5.2. See Section 1.6, “MySQL Development Roadmap”.