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 удаляются из обеих таблиц.