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
personIdna 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.