R-18261-05736-40874-08637-62312-01294-07527-53761 tcl slt th3 src
Canonical usage: syntax/conflict-clause.html
th3/req1/conflict01.test:12
/* IMP: R-18261-05736 */
# EVIDENCE-OF: R-18261-05736 -- syntax diagram conflict-clause
R-31884-19145-46591-63123-39712-55381-35148-20037 tcl slt th3 src
The syntax for the ON CONFLICT clause is as shown above for the CREATE TABLE command.
th3/req1/conflict01.test:14
/* IMP: R-31884-19145 */
# EVIDENCE-OF: R-31884-19145 The syntax for the ON CONFLICT clause is as # shown above for the CREATE TABLE command.
R-26917-59594-53851-11147-17067-15964-43582-37189 tcl slt th3 src
For the INSERT and UPDATE commands, the keywords "ON CONFLICT" are replaced by "OR" so that the syntax reads more naturally.
th3/req1/conflict01.test:17
/* IMP: R-26917-59594 */
# EVIDENCE-OF: R-26917-59594 For the INSERT and UPDATE commands, the # keywords "ON CONFLICT" are replaced by "OR" so that the syntax reads # more naturally.
R-55069-12282-57104-06256-56752-59196-49409-09981 tcl slt th3 src
The default conflict resolution algorithm is ABORT.
th3/req1/conflict03.test:10
/* IMP: R-55069-12282 */
# EVIDENCE-OF: R-55069-12282 The default conflict resolution algorithm # is ABORT.
R-31881-13880-39891-17539-21926-06368-53167-38054 tcl slt th3 src
When an applicable constraint violation occurs, the ROLLBACK resolution algorithm aborts the current SQL statement with an SQLITE_CONSTRAINT error and rolls back the current transaction.
th3/req1/conflict01.test:57
/* IMP: R-31881-13880 */
# EVIDENCE-OF: R-31881-13880 When an applicable constraint violation # occurs, the ROLLBACK resolution algorithm aborts the current SQL # statement with an SQLITE_CONSTRAINT error and rolls back the current # transaction.
R-42089-41020-28633-04847-35892-58431-48484-20358 tcl slt th3 src
If no transaction is active (other than the implied transaction that is created on every command) then the ROLLBACK resolution algorithm works the same as the ABORT algorithm.
th3/req1/conflict01.test:237
/* IMP: R-42089-41020 */
# EVIDENCE-OF: R-42089-41020 If no transaction is active (other than the # implied transaction that is created on every command) then the # ROLLBACK resolution algorithm works the same as the ABORT algorithm.
R-47224-48532-62948-64824-54403-32645-39277-62522 tcl slt th3 src
When an applicable constraint violation occurs, the ABORT resolution algorithm aborts the current SQL statement with an SQLITE_CONSTRAINT error and backs out any changes made by the current SQL statement; but changes caused by prior SQL statements within the same transaction are preserved and the transaction remains active.
th3/req1/conflict01.test:375
/* IMP: R-47224-48532 */
# EVIDENCE-OF: R-47224-48532 When an applicable constraint violation # occurs, the ABORT resolution algorithm aborts the current SQL # statement with an SQLITE_CONSTRAINT error and backs out any changes # made by the current SQL statement; but changes caused by prior SQL # statements within the same transaction are preserved and the # transaction remains active.
R-45095-63572-26689-30740-64749-16083-48841-09127 tcl slt th3 src
When an applicable constraint violation occurs, the FAIL resolution algorithm aborts the current SQL statement with an SQLITE_CONSTRAINT error.
th3/req1/conflict01.test:555
/* IMP: R-45095-63572 */
# EVIDENCE-OF: R-45095-63572 When an applicable constraint violation # occurs, the FAIL resolution algorithm aborts the current SQL statement # with an SQLITE_CONSTRAINT error.
R-31882-08811-51062-63000-47445-51971-26333-04918 tcl slt th3 src
But the FAIL resolution does not back out prior changes of the SQL statement that failed nor does it end the transaction.
th3/req1/conflict01.test:559
/* IMP: R-31882-08811 */
# EVIDENCE-OF: R-31882-08811 But the FAIL resolution does not back out # prior changes of the SQL statement that failed nor does it end the # transaction.
R-48584-41074-15154-28473-43969-34090-29401-03268 tcl slt th3 src
For example, if an UPDATE statement encountered a constraint violation on the 100th row that it attempts to update, then the first 99 row changes are preserved but changes to rows 100 and beyond never occur.
th3/req1/conflict01.test:734
/* IMP: R-48584-41074 */
# EVIDENCE-OF: R-48584-41074 For example, if an UPDATE statement # encountered a constraint violation on the 100th row that it attempts # to update, then the first 99 row changes are preserved but changes to # rows 100 and beyond never occur.
R-50299-05307-25514-21202-52371-12958-26129-48124 tcl slt th3 src
When an applicable constraint violation occurs, the IGNORE resolution algorithm skips the one row that contains the constraint violation and continues processing subsequent rows of the SQL statement as if nothing went wrong.
th3/req1/conflict01.test:789
/* IMP: R-50299-05307 */
# EVIDENCE-OF: R-50299-05307 When an applicable constraint violation # occurs, the IGNORE resolution algorithm skips the one row that # contains the constraint violation and continues processing subsequent # rows of the SQL statement as if nothing went wrong.
R-52324-04086-24847-26987-35436-53811-31141-55641 tcl slt th3 src
No error is returned when the IGNORE conflict resolution algorithm is used.
th3/req1/conflict01.test:794
/* IMP: R-52324-04086 */
# EVIDENCE-OF: R-52324-04086 No error is returned when the IGNORE # conflict resolution algorithm is used.
R-54702-17780-20915-24655-06816-59842-01536-54593 tcl slt th3 src
When a UNIQUE or PRIMARY KEY constraint violation occurs, the REPLACE algorithm deletes pre-existing rows that are causing the constraint violation prior to inserting or updating the current row and the command continues executing normally.
th3/req1/conflict02.test:54
/* IMP: R-54702-17780 */
# EVIDENCE-OF: R-54702-17780 When a UNIQUE or PRIMARY KEY constraint # violation occurs, the REPLACE algorithm deletes pre-existing rows that # are causing the constraint violation prior to inserting or updating # the current row and the command continues executing normally.
R-12527-00403-29905-17103-05546-05821-61371-29057 tcl slt th3 src
If a NOT NULL constraint violation occurs, the REPLACE conflict resolution replaces the NULL value with the default value for that column, or if the column has no default value, then the ABORT algorithm is used.
th3/req1/conflict02.test:114
/* IMP: R-12527-00403 */
# EVIDENCE-OF: R-12527-00403 If a NOT NULL constraint violation occurs, # the REPLACE conflict resolution replaces the NULL value with the # default value for that column, or if the column has no default value, # then the ABORT algorithm is used.
R-15569-63625-32025-44445-56996-41662-23877-23571 tcl slt th3 src
If a CHECK constraint violation occurs, the REPLACE conflict resolution algorithm always works like ABORT.
src/insert.c:1349 th3/req1/conflict02.test:159
/* IMP: R-15569-63625 */
# EVIDENCE-OF: R-15569-63625 If a CHECK constraint violation occurs, the # REPLACE conflict resolution algorithm always works like ABORT.
R-23498-38103-14789-32362-20893-18131-57271-11278 tcl slt th3 src
When the REPLACE conflict resolution strategy deletes rows in order to satisfy a constraint, delete triggers fire if and only if recursive triggers are enabled.
th3/req1/conflict02.test:198
/* IMP: R-23498-38103 */
# EVIDENCE-OF: R-23498-38103 When the REPLACE conflict resolution # strategy deletes rows in order to satisfy a constraint, delete # triggers fire if and only if recursive triggers are enabled.
R-40235-17052-28075-57665-18059-48204-40601-49682 tcl slt th3 src
The update hook is not invoked for rows that are deleted by the REPLACE conflict resolution strategy.
th3/req1/conflict02.test:205
/* IMP: R-40235-17052 */
# EVIDENCE-OF: R-40235-17052 The update hook is not invoked for rows # that are deleted by the REPLACE conflict resolution strategy.
R-37019-57602-33488-54627-46176-35899-62282-07201 tcl slt th3 src
Nor does REPLACE increment the change counter.
th3/req1/conflict02.test:202
/* IMP: R-37019-57602 */
# EVIDENCE-OF: R-37019-57602 Nor does REPLACE increment the change # counter.
R-33948-22286-15597-10485-25275-41982-01072-17156 tcl slt th3 src
The algorithm specified in the OR clause of an INSERT or UPDATE overrides any algorithm specified in a CREATE TABLE.
th3/req1/conflict04.test:11
/* IMP: R-33948-22286 */
# EVIDENCE-OF: R-33948-22286 The algorithm specified in the OR clause of # an INSERT or UPDATE overrides any algorithm specified in a CREATE # TABLE.
R-05239-12850-29861-48267-58259-09367-64321-59571 tcl slt th3 src
If no algorithm is specified anywhere, the ABORT algorithm is used.
th3/req1/conflict03.test:13
/* IMP: R-05239-12850 */
# EVIDENCE-OF: R-05239-12850 If no algorithm is specified anywhere, the # ABORT algorithm is used.