#### 1.7.3.1 主键和唯一索引约束

[](<>)[](<>)[](<>)

通常，数据更改语句会发生错误（例如[`插入`](insert.html)要么[`更新`](update.html)) 这将违反主键、唯一键或外键约束。如果您使用的是事务性存储引擎，例如`InnoDB`，MySQL自动回滚语句。如果您使用的是非事务性存储引擎，MySQL 将停止处理发生错误的行处的语句，并保留任何未处理的剩余行。

MySQL 支持一个`忽视`关键字[`插入`](insert.html),[`更新`](update.html)，等等。如果使用它，MySQL 会忽略主键或唯一键违规并继续处理下一行。请参阅您正在使用的语句部分（[第 13.2.6 节，“INSERT 语句”](insert.html),[第 13.2.13 节，“更新语句”](update.html)，等等）。

您可以获得有关实际插入或更新的行数的信息[`mysql_info()`](https://dev.mysql.com/doc/c-api/8.0/en/mysql-info.html)C API 函数。您还可以使用[`显示警告`](show-warnings.html)陈述。看[mysql\_信息（）](https://dev.mysql.com/doc/c-api/8.0/en/mysql-info.html)， 和[第 13.7.7.42 节，“显示警告声明”](show-warnings.html).

`InnoDB`和`新开发银行`表支持外键。看[第 1.7.3.2 节，“外键约束”](constraint-foreign-key.html).
