A unique identifier, often an integer, that labels a certain row in a table of a relational database.
When this value occurs in other tables as a reference to a particular row in the first table it is called a "foreign key".
Some RDBMSes can generate a new unique identifier each time a new row is inserted, others merely allow a column to be constrained to contain unique values.
A table may have multiple candidate keys, from which the primary key is chosen. The primary key should be an arbitrary value, such as an autoincrementing integer. This avoids dependence on uniqueness, permanence and format of existing columns with real-world meaning (e.g. a person's name) or other external identifier (e.g. social security number).
There should be enough possible primary key values to cater for the current and expected number of rows, bearing in mind that a wider column will generally be slower to process.