DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) constraints

Info Catalog (mysql.info) differences-from-ansi (mysql.info) compatibility
 
 1.9.6 How MySQL Deals with Constraints
 --------------------------------------
 

Menu

 
* constraint-primary-key       `PRIMARY KEY' and `UNIQUE' Index Constraints
* constraint-invalid-data      Constraints on Invalid Data
* constraint-enum              `ENUM' and `SET' Constraints
 
 MySQL allows you to work both with transactional tables that allow
 rollback and with non-transactional tables that do not.  Because of
 this, constraint handling is a bit different in MySQL than in other
 DBMSs. We must handle the case when you have inserted or updated a lot
 of rows in a non-transactional table for which changes cannot be rolled
 back when an error occurs.
 
 The basic philosophy is that MySQL Server tries to produce an error for
 anything that it can detect while parsing a statement to be executed,
 and tries to recover from any errors that occur while executing the
 statement. We do this in most cases, but not yet for all.
 
 The options MySQL has when an error occurs are to stop the statement in
 the middle or to recover as well as possible from the problem and
 continue. By default, the server follows the latter course. This means,
 for example, that the server may coerce illegal values to the closest
 legal values.
 
 Beginning with MySQL 5.0.2, several SQL mode options are available to
 provide greater control over handling of bad data values and whether to
 continue statement execution or abort when errors occur. Using these
 options, you can configure MySQL Server to act in a more traditional
 fashion that is like other DBMSs that reject improper input. The SQL
 mode can be set globally at server startup to affect all clients.
 Individual clients can set the SQL mode at runtime, which enables each
 client to select the behavior most appropriate for its requirements.
 See  server-sql-mode.
 
 The following sections describe how MySQL Server handles different
 types of constraints.
 
Info Catalog (mysql.info) differences-from-ansi (mysql.info) compatibility
automatically generated byinfo2html