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”.