Durante a criação da tabela, a definição da chave primária pode ser feita em dois locais diferentes da expressão SQL:
Veja como seria a mesma definição de tabela do exemplo anterior, mas com a definição da chave primária após a definição dos campos:
CREATE TABLE FUNCIONARIOS (
ID_Funcionario INT,
Nome VARCHAR (255),
PRIMARY KEY (ID_Funcionario))
As tabelas normalmente possuem apenas uma chave primária, entretanto, as tabelas associativas geralmente recebem as chaves primárias de outras tabelas para identificá-las. Dessa forma, a chave primária de uma tabela associativa pode ser formada pela união das chaves primárias de duas ou mais tabelas.
Exemplo: suponha que em um banco de dados um funcionário pode ter vários endereços e um endereço possa pertencer a vários funcionários. Para criar essa relação, precisaremos de uma tabela associativa que une funcionários a endereços. Essa tabela poderia se chamar, por exemplo, de FUNCIONARIOS_ENDERECOS e possuir ID_Funcionario e ID_Endereco, juntas, como chave primária. Para chaves primárias que incluem mais de um campo, somente é possível usar a segunda forma de especificação de cláusula SQL (com a identificação após a lista de campos). Veja a seguir como seria a definição de uma chave primária baseada em dois campos:
CREATE TABLE FUNCIONARIOS_ENDERECOS (
ID_Funcionario INT,
ID_Endereco INT,
Logradouro VARCHAR (255),
...demais campos...
PRIMARY KEY (ID_Funcionario, ID_Endereco))