Já existe uma chave primária na sua tabela. Você não pode simplesmente adicionar chave primária, caso contrário, causará erro. Porque existe uma chave primária para a tabela sql.
Primeiro, você deve soltar sua chave primária antiga.
MySQL:
ALTER TABLE Persion
DROP PRIMARY KEY;
Acesso ao SQL Server / Oracle / MS:
ALTER TABLE Persion
DROP CONSTRAINT 'constraint name';
Você precisa encontrar o nome da restrição na sua tabela. Se você forneceu o nome da restrição ao criar a tabela, poderá usá-lo facilmente (ex: PK_Persion).
Segundo, adicione chave primária.
Acesso MySQL / SQL Server / Oracle / MS:
ALTER TABLE Persion ADD PRIMARY KEY (PersionId,Pname,PMID);
ou o melhor abaixo
ALTER TABLE Persion ADD CONSTRAINT PK_Persion PRIMARY KEY (PersionId,Pname,PMID);
Isso pode definir o nome da restrição pelo desenvolvedor. É mais fácil manter a mesa.
Fiquei um pouco confuso quando procurei todas as respostas. Então, pesquiso alguns documentos para encontrar todos os detalhes. Espero que esta resposta possa ajudar outro iniciante em SQL.
Referência: https://www.w3schools.com/sql/sql_primarykey.asp
personId
na sua tabela. Por sua vez, isso significa que, se você ingressar de uma tabela de tipos de transação (muitos) nessa tabela, somente nessa chave, obterá registros duplicados, levando à "contagem dupla" de registros de transações.