MySQL MariaDB

КАСКАД УДАЛЕНИЯ MySQL

КАСКАД УДАЛЕНИЯ MySQL
В MySQL оператор ON DELETE CASCADE используется для неявного извлечения соответствующих строк из дочерней таблицы всякий раз, когда строки удаляются из родительской таблицы. Это относительный тип контекстного поведения, связанного с внешним ключом.

Предполагая, что вы создали две таблицы с ИНОСТРАННЫМ КЛЮЧОМ внутри отношения внешнего ключа, отображая одну родительскую и дочернюю таблицы. После этого, предназначенный для одного ИНОСТРАННОГО КЛЮЧА должен быть исправлен, чтобы другой был успешным во время каскадных действий, затем мы указываем оператор ON DELETE CASCADE. Возможно, если один оператор FOREIGN KEY определяет ON DELETE CASCADE, каскадные функции вызовут исключение.

Давайте поймем, как во всей таблице MySQL мы могли бы использовать оператор ON DELETE CASCADE.

Вы должны открыть недавно установленную клиентскую оболочку командной строки MySQL, чтобы продолжить работу. При открытии вам будет предложено ввести пароль, чтобы продолжить использование клиентской оболочки командной строки MySQL, как показано ниже.

Далее мы создадим две таблицы с названиями «заказ» и «заказчик». Обе взаимные таблицы связаны с каскадной функцией удаления с использованием внешнего ключа. На этом этапе родительская таблица - это «заказ», а дочерняя таблица - «заказчик». С помощью прилагаемых скриптов вместе с соответствующими записями вы должны построить обе таблицы. Используйте приведенную ниже команду «использовать», чтобы выбрать базу данных, в которой вы хотите работать, или создайте таблицы в ней. Здесь «данные» - это база данных, которую мы используем.

>> использовать данные;

Создать родительскую таблицу:

Прежде всего, вы должны создать таблицу «order» вместе с ее полями с помощью команды CREATE TABLE, как показано в запросе ниже. Столбец «ID» будет использован в следующей таблице «клиент» в качестве внешнего ключа.

>> СОЗДАТЬ ТАБЛИЦУ данные.заказ (ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Item VARCHAR (50) NOT NULL, Price VARCHAR (50) NOT NULL);

Добавим данные в эту таблицу. Вы должны выполнить показанные ниже запросы в оболочке командной строки MySQL и запустить каждую команду отдельно в командной строке или просто добавить все команды в командную строку за один шаг. Вы также можете использовать графический интерфейс MySQL Workbench для добавления данных в таблицу.

Теперь проверим «порядок» таблицы после внесения в нее значений. Для этой цели вы можете использовать команду SELECT следующим образом:

>> ВЫБРАТЬ * ИЗ данных.заказывать;

Вы можете видеть, что данные были успешно сохранены в таблице «порядок», как и ожидалось.

Создайте дочернюю таблицу с помощью DELETE Cascade:

Теперь настала очередь создать еще одну таблицу под названием «customer».

Во-первых, вы должны ввести ключевое слово «CREATE» вместе с именем таблицы. Затем вам нужно добавить имена полей или столбцов вместе с их типами данных. Вы должны назвать последний столбец, который будет использоваться в качестве внешнего ключа в этой таблице, так же, как вы назвали его в предыдущей таблице. Как вы знаете, столбец «ID» из таблицы «order» использовался в качестве внешнего ключа в таблице «customer» как «OrderID». После этого вы должны добавить ключевое слово «CONSTRAINT», которое используется для инициализации FOREIGN Key, вместе со ссылкой на предыдущую таблицу. Теперь вам нужно использовать оператор «DELETE CASCADE» вместе с ключевым словом «ON».

>> СОЗДАТЬ ТАБЛИЦУ данные.customer (CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, имя VARCHAR (45) NOT NULL, OrderID INT NOT NULL, CONSTRAINT order_id_fk FOREIGN KEY (OrderID) ССЫЛКИ данные.заказ (ID) НА КАСКАД УДАЛЕНИЯ);

После того, как таблица была создана, и DELETE CASCADE был успешно применен к этой таблице, пора вставить некоторые значения в эту таблицу. Попробуйте выполнить следующие инструкции одну за другой в клиентской оболочке командной строки MySQL, чтобы сделать это.

Впоследствии делаем вставку запросов. Это момент, чтобы проверить таблицу, были ли данные добавлены успешно или нет. Поэтому попробуйте эту команду ниже, чтобы сделать это:

>> ВЫБРАТЬ * ИЗ данных.клиент;

Здесь вы можете получить представление о выводе таблицы, что данные ей эффективно назначены и без каких-либо ошибок или сбоев.

Удалить записи:

Теперь, когда вы удаляете какие-либо данные или строку из родительской таблицы, она также удаляет данные или строку из дочерней таблицы из-за включенного КАСКАДА УДАЛЕНИЯ на внешнем ключе, упомянутом в дочерней таблице. Давайте сначала попробуем запрос DELETE, а затем проверим результаты. Мы будем удалять данные из таблицы «порядок», где «ID» равен «11». Если такой же «ID» будет найден в таблице «customer» в столбце внешнего ключа «OrderID», тогда соответствующая строка или данные в таблице «customer» также будут удалены. Для этого попробуйте следующую команду в командной строке:

>> УДАЛИТЬ ИЗ данных. заказ WHERE ID = '11';

Сначала проверим родительскую таблицу. Затем введите команду SELECT, указанную ниже, чтобы получить оставшиеся записи таблицы «порядок» после удаления некоторых записей. Вы увидите, что запись таблицы, где «ID» был «11», была успешно удалена из этой таблицы. Это означает, что относительные записи с одинаковым значением идентификатора «11» также будут удалены из дочерней таблицы.

>> ВЫБРАТЬ * ИЗ данных.заказывать;

Получить записи дочерней таблицы с помощью команды SELECT так же просто, как и раньше. Просто попробуйте команду ниже, и вы получите результат.

Получив результаты, вы можете увидеть, что запись «CustID» со значением «1» была полностью удалена. Это связано с тем, что столбец «OrderID» имеет значение «11» в первой строке, что приводит к удалению этой строки.

>> ВЫБРАТЬ * ИЗ данных.клиент;

Когда вы пытаетесь удалить родительскую таблицу с помощью команды DROP, MySQL не позволит вам это сделать. Это потому, что в родительской таблице включен КАСКАД УДАЛЕНИЯ. Итак, чтобы удалить таблицу, вы должны сначала удалить из нее КАСКАД УДАЛЕНИЯ.

Заключение:

Мы закончили с объяснением DELETE CASCADE в MySQL. Чтобы было понятнее, попробуйте больше примеров в конце.

Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...
Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...
10 лучших игр для Ubuntu
Платформа Windows была одной из доминирующих платформ для игр из-за огромного процента игр, которые разрабатываются сегодня с встроенной поддержкой Wi...