Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Clarify the behavior of sqlite3_last_insert_rowid() when using INSERT OR IGNORE. (CVS 4515) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c0fa0c8ba80f4cd60bd06da7a032c642 |
User & Date: | drh 2007-10-27 16:25:16.000 |
Context
2007-10-30
| ||
15:29 | Fix a race condtion in test_async.c. (CVS 4516) (check-in: 5e3f7c3dec user: danielk1977 tags: trunk) | |
2007-10-27
| ||
16:25 | Clarify the behavior of sqlite3_last_insert_rowid() when using INSERT OR IGNORE. (CVS 4515) (check-in: c0fa0c8ba8 user: drh tags: trunk) | |
2007-10-24
| ||
23:24 | Be a bit more susicious of invalid results from the tokenizer. (CVS 4514) (check-in: deb8f56d3a user: shess tags: trunk) | |
Changes
Changes to src/sqlite.h.in.
︙ | ︙ | |||
26 27 28 29 30 31 32 | ** on how SQLite interfaces are suppose to operate. ** ** The name of this file under configuration management is "sqlite.h.in". ** The makefile makes some minor changes to this file (such as inserting ** the version number) and changes its name to "sqlite3.h" as ** part of the build process. ** | | | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | ** on how SQLite interfaces are suppose to operate. ** ** The name of this file under configuration management is "sqlite.h.in". ** The makefile makes some minor changes to this file (such as inserting ** the version number) and changes its name to "sqlite3.h" as ** part of the build process. ** ** @(#) $Id: sqlite.h.in,v 1.268 2007/10/27 16:25:16 drh Exp $ */ #ifndef _SQLITE3_H_ #define _SQLITE3_H_ #include <stdarg.h> /* Needed for the definition of va_list */ /* ** Make sure we can call this stuff from C++. |
︙ | ︙ | |||
744 745 746 747 748 749 750 | ** ** Each entry in an SQLite table has a unique 64-bit signed integer key ** called the "rowid". The rowid is always available as an undeclared ** column named ROWID, OID, or _ROWID_. If the table has a column of ** type INTEGER PRIMARY KEY then that column is another an alias for the ** rowid. ** | | | > > > > > > > > > > | 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 | ** ** Each entry in an SQLite table has a unique 64-bit signed integer key ** called the "rowid". The rowid is always available as an undeclared ** column named ROWID, OID, or _ROWID_. If the table has a column of ** type INTEGER PRIMARY KEY then that column is another an alias for the ** rowid. ** ** This routine returns the rowid of the most recent successful INSERT into ** the database from the database connection given in the first ** argument. If no successful inserts have ever occurred on this database ** connection, zero is returned. ** ** If an INSERT occurs within a trigger, then the rowid of the ** inserted row is returned by this routine as long as the trigger ** is running. But once the trigger terminates, the value returned ** by this routine reverts to the last value inserted before the ** trigger fired. ** ** An INSERT that fails due to a constraint violation is not a ** successful insert and does not change the value returned by this ** routine. Thus INSERT OR FAIL, INSERT OR IGNORE, INSERT OR ROLLBACK, ** and INSERT OR ABORT make no changes to the return value of this ** routine when their insertion fails. When INSERT OR REPLACE ** encounters a constraint violation, it does not fail. The ** INSERT continues to completion after deleting rows that caused ** the constraint problem so INSERT OR REPLACE will always change ** the return value of this interface. ** ** If another thread does a new insert on the same database connection ** while this routine is running and thus changes the last insert rowid, ** then the return value of this routine is undefined. */ sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*); |
︙ | ︙ |