SQLITE_CHANGESET_DATA
,
SQLITE_CHANGESET_NOTFOUND
,
SQLITE_CHANGESET_CONFLICT
,
SQLITE_CHANGESET_CONSTRAINT
,
SQLITE_CHANGESET_FOREIGN_KEY
—
Constants Passed To The Conflict Handler
#define SQLITE_CHANGESET_DATA
#define SQLITE_CHANGESET_NOTFOUND
#define SQLITE_CHANGESET_CONFLICT
#define SQLITE_CHANGESET_CONSTRAINT
#define SQLITE_CHANGESET_FOREIGN_KEY
Values that may be passed as the second argument to a conflict-handler.
- SQLITE_CHANGESET_DATAThe conflict handler is invoked with
CHANGESET_DATA
- as the second argument when processing a DELETE or UPDATE change if a row
with the required PRIMARY KEY fields is present in the database, but one
or more other (non primary-key) fields modified by the update do not
contain the expected "before" values.
The conflicting row, in this case, is the database row with
the matching primary key.
- SQLITE_CHANGESET_NOTFOUNDThe conflict handler is invoked with
CHANGESET_NOTFOUND
- as the second argument when processing a DELETE or UPDATE change if a row
with the required PRIMARY KEY fields is not present in the database.
There is no conflicting row in this case. The results of
invoking the sqlite3changeset_conflict() API are undefined.
- SQLITE_CHANGESET_CONFLICTCHANGESET_CONFLICT is passed as the second
- argument to the conflict handler while processing an INSERT change if the
operation would result in duplicate primary key values.
The conflicting row in this case is the database row with the
matching primary key.
- SQLITE_CHANGESET_FOREIGN_KEYIf foreign key handling is enabled, and
- applying a changeset leaves the database in a state containing foreign key
violations, the conflict handler is invoked with CHANGESET_FOREIGN_KEY as
the second argument exactly once before the changeset is committed. If the
conflict handler returns CHANGESET_OMIT, the changes, including those that
caused the foreign key constraint violation, are committed. Or, if it
returns CHANGESET_ABORT, the changeset is rolled back.
No current or conflicting row information is provided. The
only function it is possible to call on the supplied
sqlite3_changeset_iter handle is sqlite3changeset_fk_conflicts().
- SQLITE_CHANGESET_CONSTRAINTIf any other constraint violation occurs
- while applying a change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the
conflict handler is invoked with CHANGESET_CONSTRAINT as the second
argument.
There is no conflicting row in this case. The results of
invoking the sqlite3changeset_conflict() API are undefined.