4 типа действий, выполняемых по ссылке, определяют, что будет происходить с дочерней таблицей при изменении значений родительского ключа

4 типа действий, выполняемых по ссылке, определяют, что будет происходить с дочерней таблицей при изменении значений родительского ключа




🛑🛑🛑 ПОДРОБНЕЕ ЖМИТЕ ЗДЕСЬ 👈🏻👈🏻👈🏻

































Если значение является составным ключом, то дочерняя таблица будет обновлена или удалена в зависимости от того, будет ли она затронута при изменении родительского ключа или нет.
В следующей таблице показано, каким образом будут обрабатываться изменения для каждого из четырех типов действий.
Таблица 4.4.
Типы действий при изменении значения ключа
Тип действия
Описание
Обновление
Проводится обновление дочерней таблицы до значения родительского ключа, если оно изменяется.
Удаление
Эти четыре действия можно разделить на две категории:
1. Удаление всех дочерних записей.
2. Добавление новых дочерних записей в таблицу.
Удаление всех дочерних объектов
Если вы удалите все дочерние записи таблицы, то значение родительского ключа останется неизменным.
Это действие выполняется, если вы хотите удалить все записи из таблицы.
Если в таблице есть несколько дочерних таблиц, тогда нужно выбрать одну из них и выполнить удаление всех записей из этой таблицы.
Добавление новых записей
Если значение столбца не является родительским ключом, то он не должен быть указан в ссылке.
В таблице, содержащей ссылку, должны быть указаны все родительские ключи.
При добавлении, удалении или обновлении записи из таблицы, содержащей ссылочную таблицу, происходит также обновление связанных записей
Для каждого типа действия, выполняемого по ссылке таблицы, задается набор условий.
Эти условия определяют, какие записи будут обновляться при выполнении действия.
В следующем примере показано использование оператора INSERT для создания новой таблицы, содержащей два поля: имя, которое является уникальным ключом, и значение, которое может быть любым числом.
По умолчанию таблица создается с тремя полями: имя (UNIQUE, BLOB), значение (BLOB) и дата (TIMESTAMP).
CREATE TABLE new_table (name BLOB NOT NULL, value BLOB, FOREIGN KEY (name) REFERENCES old_table(name));
INSERT INTO new_table VALUES ('Tom', '42'); INSERT INTO new_table SELECT * FROM old_table;
Например, если в родительской таблице есть индекс, и он ссылается на дочернюю таблицу (например, индекс на parent_id), то для каждой записи из дочерних таблиц, содержащей значение parent_id, оно будет обновляться или добавляться в зависимости от типа действия.
Если родительский ключ не ссылается ни на одну таблицу, то дочерняя таблица не будет обновлена или обновлена при добавлении значения родительского ключа
Тип действия
Описание
Обновление
В нашем случае это будет выглядеть примерно так:
ALTER TABLE `test_table` ADD CONSTRAINT `fk_test_one` FOREIGN KEY (`id`) REFERENCES `test_tbl`(`id`); ALTER TABLE `test1_table` ADD COLUMN `id` INT(11) NOT NULL AUTO_INCREMENT; ALTER TABLE `table_one_id` ADD `id_parent` INT(11);
В примере выше, если «id» в таблице «test_tbl» будет заменен, то «id_parent» также изменится, а «id» таблицы «my_other_table» автоматически будет проиндексирован.
В следующей таблице приведены некоторые примеры.
Обратите внимание на то, что при использовании типа ссылки, отличного от REF, родительская таблица должна содержать внешний ключ, ссылающийся на таблицу дочерних элементов.
Тип ссылки
Действия по ссылке
Описание
REF
Данные хранятся в родительской таблице, а дочерние таблицы получают данные из родительской таблицы путем использования внешнего ключа, указанного в ссылке.
в таблице.
С помощью этих типов действий можно также определить, как будет выполняться переход к родительскому элементу в случае, если родительский элемент не существует.
Типы действий могут быть определены для одного действия или для всех действий.
Для типа действия, определенного для всех действий, можно определить, выполняется ли действие при каждом изменении родительского элемента.
Если это так, то действия для разных дочерних элементов будут выполняться независимо друг от друга.
Тип действия определяет, как изменения в родительской таблице будут влиять на дочернюю таблицу.
Эти типы действий описаны в этой статье
Действие по умолчанию: если значение параметра Действия по умолчанию равно true, то все изменения родительской таблицы будут отражаться в дочерней таблице.
Если значение параметра действия по умолчанию является false, то родительская таблица будет оставаться неизменной, пока не будут выполнены изменения дочерней таблицы.
Таблица может содержать несколько ссылок на другие таблицы, которые будут заменены при их изменении.
Если дочерняя таблица содержит ссылку на другую таблицу, которая изменилась, то будет восстановлена родительская таблица.
В таблице, содержащей несколько дочерних таблиц, каждая дочерняя таблица будет заменена при изменении родительского ключа, если только в одной из дочерних таблиц не было изменения, которое привело к изменению родительского ключа
Реферат На Тему Помощь При Отравлении
Рефераты: Психология
Может Ли Машины Мыслить Эссе

Report Page