MySQL | Удаление строк при наличии внешнего ключа
В этой статье давайте обсудим обзор внешнего ключа в SQL, и основное внимание будет уделено тому, как удалить внешний ключ в MySQL. Давайте обсудим это шаг за шагом.
Иностранный ключ :
 Во внешнем ключе, когда атрибут в одной таблице, который не является первичным ключом, ссылается на тот же атрибут, который является первичным ключом в другой таблице, тогда непервичный ключ называется внешним ключом. Мы используем ссылки внешнего ключа для создания ссылок между таблицами и любых действий, выполняемых в любой из таблиц.
Шаги по удалению строк при наличии внешнего ключа в MySQL :
 Здесь мы обсудим необходимые шаги для реализации удаления строк при наличии внешнего ключа в MySQL с помощью примеров для лучшего понимания.
Шаг 1: Создание базы данных :
 Создание студента базы данных с помощью следующего запроса SQL следующим образом.
CREATE DATABASE student;
Выход :

Шаг 2: Использование базы данных :
 Использование студента базы данных с помощью следующего SQL-запроса следующим образом.
USE student;
Выход :

Шаг 3: Создание двух таблиц:
 Таблица 1. Создание таблицы student_details с 3 столбцами с использованием следующего SQL-запроса следующим образом.
CREATE TABLE student_details
(
     student_id INT PRIMARY KEY,
     Student_name varchar(8),
     student_year varchar(8)
);Выход :

Таблица 2. Создание таблицы student_exam с 3 столбцами с использованием следующего SQL-запроса следующим образом.
CREATE TABLE student_exam ( exam_id INT PRIMARY KEY, exam_name varchar(8), student_id INT, FOREIGN KEY(student_id) REFERENCES student_details(student_id) ON DELETE CASCADE );
Выход :
 Таблица student_exam имеет внешний ключ student_id, ссылающийся на student_id в таблице student_details. Здесь добавляется ON DELETE CASCADE , потому что, когда любая строка удаляется в одной таблице, она удаляется во внешних таблицах, на которые ссылаются, которые ссылаются на первичный ключ в этой таблице.

Шаг 4: Проверка базы данных :
 Для просмотра описания таблиц в базе данных используется следующий SQL-запрос следующим образом.
DESCRIBE student_details;
Выход :

DESCRIBE student_exam;
Выход :
 Здесь мы видим MUL для внешнего ключа в ключевом столбце.

Шаг 5: Вставка данных в таблицу :
 Вставка строк в таблицу student_details с помощью следующего запроса SQL следующим образом.
INSERT INTO student_details VALUES(19102047,"PRADEEP","1st"); INSERT INTO student_details VALUES(19102048,"KOUSHIK","1st"); INSERT INTO student_details VALUES(19102049,"SATWIK","2st"); INSERT INTO student_details VALUES(19102050,"VAMSI","2nd");
Выход :

Вставка строк в таблицу student_exam с использованием следующего запроса SQL следующим образом.
INSERT INTO student_exam VALUES(9001,"DBMS","19102047"); INSERT INTO student_exam VALUES(9002,"C.N","19102048"); INSERT INTO student_exam VALUES(9003,"O.S","19102049"); INSERT INTO student_exam VALUES(9004,"O.S","19102050");
Выход :

Шаг 6: Проверка вставленных данных:
 Просмотр таблицы student_details после вставки строк с помощью следующего запроса SQL следующим образом.
SELECT * FROM student_details;
Выход :

Просмотр таблицы student_exam после вставки строк с помощью следующего запроса SQL следующим образом.
SELECT* FROM student_exam;
Выход :

Примечание -
 Если ограничение ON DELETE CASCADE не используется, возникает ошибка ссылки.
Шаг 7: Удаление строк при наличии внешнего ключа:
 Запрос на удаление студента с идентификатором 19102048 из таблицы student_exam, где ссылочные таблицы — student_details.
 Синтаксис –
DELETE FROM table_name WHERE constraint;
Запрос -
DELETE FROM student_details WHERE student_id=19102048;
Вывод: Перед удалением –

Вывод: после удаления –
 Строки с идентификатором учащегося 19102048 удаляются из обеих таблиц.
