У вашій таблиці вже є первинний ключ. Ви не можете просто додати первинний ключ, інакше це призведе до помилки.Тому що є один первинний ключ для sql таблиці.
По-перше, вам потрібно скинути свій старий первинний ключ.
MySQL:
ALTER TABLE Persion
DROP PRIMARY KEY;
Доступ до SQL Server / Oracle / MS:
ALTER TABLE Persion
DROP CONSTRAINT 'constraint name';
Ви повинні знайти ім'я обмеження у вашій таблиці. Якщо ви створили ім’я обмеження під час створення таблиці, ви можете легко використовувати ім'я обмеження (наприклад: PK_Persion).
По-друге, Додати первинний ключ.
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persion ADD PRIMARY KEY (PersionId,Pname,PMID);
або кращий нижче
ALTER TABLE Persion ADD CONSTRAINT PK_Persion PRIMARY KEY (PersionId,Pname,PMID);
Це може встановити назву обмеження розробником. Простіше підтримувати стіл.
Я трохи заплутався, коли переглянув усі відповіді. Тому я досліджую якийсь документ, щоб знайти кожну деталь. Сподіваюся, що ця відповідь може допомогти іншим новачкам SQL.
Довідка: https://www.w3schools.com/sql/sql_primarykey.asp
personId
у вашій таблиці. Це, в свою чергу, означає, що якщо ви приєднаєтесь із таблиці транзакцій (багато) до цієї таблиці лише на цій клавіші, ви отримаєте повторювані записи, що призведе до "подвійного рахунку" записів транзакцій.