For a relational database like PostgreSQL, it could widely be considered a sin among developers not to include a primary key in every table. It is therefore crucial that you do your utmost to add that all-important primary key column to every table, and thankfully Postgres provides two methods for accomplishing this task.
Using the Serial Data Type
Dec 19, 2014 SQLite – Auto-Increment / Auto Generate GUID David Kittell December 19, 2014 Recently was asked if it’s possible to create an auto-incrementing GUID in SQLite. I have read (in Android Studio Development Essentials) that Android is picky about the name of the primary key and wants it to always be id. Also, according to How to make AUTOINCREMENT on Android SQLite database? Autoincrement is implied and should be avoided.
By far the simplest and most common technique for adding a primary key in Postgres is by using the
SERIAL or BIGSERIAL data types when CREATING a new table. As indicated in the official documentation, SERIAL is not a true data type, but is simply shorthand notation that tells Postgres to create a auto incremented, unique identifier for the specified column.
Below we’ll create our simple
books table with an appropriate SERIAL data type for the primary key.
By simply setting our
id column as SERIAL with PRIMARY KEY attached, Postgres will handle all the complicated behind-the-scenes work and automatically increment our id column with a unique, primary key value for every INSERT .
Auto Increment Primary Key SqliteUsing a Custom Sequence
In some rare cases, the standard incremental nature built into the
SERIAL and BIGSERIAL data types may not suit your needs. In these cases, you can perform the same auto incremented primary key functionality for your column by creating a custom SEQUENCE , similar to the method used in older version of Oracle.
Perhaps we’re particularly fond of even numbers but also have a strong distaste for anything smaller than 100, so we only want our primary key to be incremented by two starting at 100 for every insert. This can be accomplished with a custom
SEQUENCE like so:
Sqlite Create Table Auto Increment
Now when we
INSERT a new record into our books table, we need to evaluate the the next value of our sequence with nextval('books_sequence') and use that as our id .
Autoincrement Primary Key SqliteSEQUENCES can be spiced up even more if desired, with options like minvalue and maxvalue to of course indicate extreme values, and even CYCLE , which allows the sequence to “loop around” once it reaches the maxvalue , returning back to the start value and beginning the climb all over again. Far more information can be found in the official documentation.
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |