Ограничения внешнего ключа
Для контроля ссылочной целостности в базе данных, необходимо чтобы таблицы были связаны при помощи конструкции FOREIGN KEY, которая имеет вид: FOREIGN KEY [index_name] (index_col_name, …) FOREIGN KEY используется при создании/изменении таблиц-потомков таблицах. Данная конструкция позволяет задать в таблице-потомке внешний ключ с именем index_name на столбцах таблицы, которые перечисляются в круглых скобках. Можно использовать один или несколько столбцов. Ключевое слово REFERENCES задаёт таблицу-предка tbl_name, на которую будет ссылаться внешний ключ. Один или несколько полей таблицы-предка задаются в круглых скобках. Необязательные конструкции ON DELETE и ON UPDATE, определяют поведение MySQL при удалении/обновлении записей из таблицы-предка. Допустимые параметры для ключевых слов ON DELETE и ON UPDATE: · RESTRICT. Если в таблице-потомке существуют записи, ссылающиеся на первичный ключ таблицы-предка, то при удалении или обновлении записей с этим первичным ключом в таблице предке будет возвращена ошибка. Ошибка будет возвращаться до тех пор, пока не останется ни одной ссылки в таблице потомке. В MySQL данный параметр означает то же самое, что и NO ACTION. · CASCADE. При удалении/обновлении записей в таблице-предке будут также обновлены/удалены записи из таблицы-потомка с существующим первичным ключом. · SET NULL. При удалении/обновлении записей в таблице-предке записи из таблицы-потомка с существующим первичным ключом будут обновлены на NULL. · NO ACTION — При удалении/обновлении записей в таблице-предке записи из таблицы-потомка с существующим первичным ключом изменены не будут. В MySQL данный параметр означает то же самое что и RESTRICT.
· SET DEFAULT. Это действие зарезервировано, но не обрабатывается в InnoDB. В нашем примере FOREIGN KEY следует использовать в таблице content для того, чтобы связать ее с таблицей pages. На рисунках 173-174 показан процесс добавления FOREIGN KEY в таблице content с помощью визуального интерфейса. Для этого на вкладке «Структура» следует выбрать ссылку «Связи». Рисунок173 - Процесс добавления FOREIGN KEY Рисунок 174 - FOREIGN KEY добавлен После добавления мы можем перейти во вкладку «Дизайнер» нашей базы данных (см. рис. 175), где увидим, что между таблицами установилась связь. Рисунок 175 – Связь между таблицами pages и content Изменение столбцов в таблице Для добавления столбцов используют следующую запись: ALTER TABLE table_name ADD column_name datatype Для удаления столбцов используют следующую запись: ALTER TABLE table_name DROP COLUMN column_name Для изменения типа данных столбцов используют запись: ALTER TABLE table_name MODIFY COLUMN column_name datatype При создании таблицы pages мы не создавали поле для хранения ссылок на разделы. Добавим его сейчас, используя запись: ALTER TABLE `pages` ADD `link` VARCHAR(100) NOT NULL AFTER `name`; Удаление таблиц Удалить таблицу можно с помощью следующего SQL запроса, где table_name – имя таблицы: DROP TABLE table_name; Чтобы удалить таблицу с помощью визуального интерфейса phpMyAdmin, выберем нужную таблицу и перейдем во вкладку «Операции», представленную на рисунке 176. В разделе «Удалить данные или таблицу», выбираем «Удалить таблицу (DROP)». Если нужно очистить таблицу от данных, но сохранить ее структуру, то используем команду «Очистить таблицу» (TRUNCATE), что соответствует запросу: TRUNCATE TABLE table_name; Рисунок 176 - Вкладка «Операции»
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|