ЯК ВИДАЛИТИ ПЕРШОЧЕРГОВИЙ КЛЮЧ
Якщо зовнішній ключ не визначено в створеній таблиці, ви можете легко видалити первинний ключ за допомогою наступної команди.
ALTER TABLE DROP PRIMARY KEY;
КОЛИ ВЖЕ ВИЗНАЧЕНО ЗОВНІШНІЙ КЛЮЧ, ЯК ВИДАЛИТИ ПЕРШОЧЕРГОВИЙ КЛЮЧ
- Визначте обмеження зовнішнього ключа.
Виконайте наступні команди, щоб перевірити обмеження зовнішнього ключа. Шукайте будь-які обмеження зовнішнього ключа, які посилаються на первинний ключ.
SHOW CREATE TABLE ;
Зверніть увагу, що якщо ви не визначили обмеження ключів для зовнішніх ключів, сервер SQL автоматично призначив обмеження ключів для цих ключів.
- Видалити залежні обмеження зовнішнього ключа
Для кожного обмеження зовнішнього ключа, яке залежить від PRIMARY KEY
, видаліть зовнішній ключ
ALTER TABLE DROP FOREIGN KEY ;
--приклад
mysql> show create table Doctor_visits_Patient;
+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Таблиця | Створення таблиці
|
+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Doctor_visits_Patient | CREATE TABLE `doctor_visits_patient` (
`PID` int NOT NULL,
`DNO` int NOT NULL,
PRIMARY KEY (`PID`,`DNO`),
KEY `DNO` (`DNO`),
CONSTRAINT `doctor_visits_patient_ibfk_1` FOREIGN KEY (`PID`) REFERENCES `patient` (`PID`),
CONSTRAINT `doctor_visits_patient_ibfk_2` FOREIGN KEY (`DNO`) REFERENCES `doctor` (`DNO`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 рядок у наборі (0.00 сек)
mysql> ALTER TABLE Doctor_visits_Patient DROP FOREIGN KEY doctor_visits_patient_ibfk_1;
Запит виконано, 0 рядків змінено (0.03 сек)
Записи: 0 Дублікати: 0 Попередження: 0
mysql> ALTER TABLE Doctor_visits_Patient DROP FOREIGN KEY doctor_visits_patient_ibfk_2;
Запит виконано, 0 рядків змінено (0.01 сек)
Записи: 0 Дублікати: 0 Попередження: 0
- Видалити первинний ключ
Коли всі залежні обмеження зовнішнього ключа видалені, ви можете видалити первинний ключ:
ALTER TABLE Doctor_visits_Patient DROP PRIMARY KEY;
ЯК ДОДАТИ ПЕРШОЧЕРГОВІ КЛЮЧІ З ЗОВНІШНІМИ КЛЮЧАМИ
У цьому випадку нам потрібно спочатку визначити зовнішній ключ, а потім можемо визначити первинний ключ або складені ключі.
CREATE TABLE Doctor_visits_Patient (
PID INT,
DNO INT,
FOREIGN KEY (PID) REFERENCES Patient(PID),
FOREIGN KEY (DNO) REFERENCES Doctor(DNO),
PRIMARY KEY(PID,DNO)
);
Як перевірити SECURE FILE PREV
SHOW VARIABLES LIKE 'secure_file_priv';
Перекладено з: [Keys Point in SQL](https://medium.com/@isurusandaruwan3840/key-point-in-sql-8079b61f479f)