PRIMARY KEY is a table-level or column-level constraint that enforces three rules: 1) every row must contain a non-NULL value in the key column(s); 2) the combination of values must be unique across the table; 3) the database automatically creates an index to speed lookups and joins that reference the key. A table can have only one PRIMARY KEY, although it can span multiple columns (composite key). The constraint can be declared inline next to a single column or as a separate CONSTRAINT clause that names multiple columns. Because other tables reference the PRIMARY KEY through FOREIGN KEY constraints, it is the cornerstone of relational integrity. Some dialects automatically add AUTOINCREMENT behavior when a single integer column is marked PRIMARY KEY (e.g., SQLite) while others require an explicit identity or sequence. Dropping or changing a PRIMARY KEY usually requires first removing dependent FOREIGN KEY constraints.
UNIQUE, FOREIGN KEY, NOT NULL, CONSTRAINT, INDEX, AUTO_INCREMENT, SERIAL, IDENTITY
SQL-86 (formalized in SQL-92)
No. A table can contain only one PRIMARY KEY, though that key can span several columns.
Yes. All major database engines create a unique index behind the scenes when you declare a PRIMARY KEY.
PRIMARY KEY enforces uniqueness and NOT NULL and is the default target for FOREIGN KEY references, while UNIQUE enforces only uniqueness.
Drop the current PRIMARY KEY constraint, ensure no foreign keys or duplicate data block the change, then add the new PRIMARY KEY on the desired column(s).