Упражнения оператора MySQL Alter Table: удаление существующего внешнего ключа fk_job_id из таблицы job_history в столбце job_id, который ссылается на job_id таблицы заданий
MySQL Alter Table Statement: Упражнение 13 с решением
Напишите оператор SQL для удаления существующего внешнего ключа fk_job_id из таблицы job_history в столбце job_id, который ссылается на job_id таблицы заданий.
Вот структура таблицы job_history.
mysql> ПОКАЗАТЬ КОЛОННЫ ИЗ job_history;
+ --------------- + --------- + ------ + ----- + --------- + ------- +
| Поле | Тип | Null | Ключ | По умолчанию | Extra |
+ --------------- + --------- + ------ + ----- + --------- + ------- +
| EMPLOYEE_ID | int (11) | НЕТ | | NULL | |
| START_DATE | дата | ДА | | NULL | |
| HIRE_DATE | дата | ДА | | NULL | |
| JOB_ID | int (11) | НЕТ | MUL | NULL | |
| DEPARTMENT_ID | int (11) | НЕТ | | NULL | |
+ --------------- + --------- + ------ + ----- + --------- + ------- +
Код:
ALTER TABLE job_history
DROP FOREIGN KEY fk_job_id;
Позвольте выполнить вышеупомянутый код в командной строке MySQL 5.6
Теперь посмотрите структуру таблицы job_history после изменения.
mysql> ПОКАЗАТЬ КОЛОННЫ ИЗ job_history; + --------------- + --------- + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + --------------- + --------- + ------ + ----- + --------- + ------- + | EMPLOYEE_ID | int (11) | НЕТ | | NULL | | | START_DATE | дата | ДА | | NULL | | | HIRE_DATE | дата | ДА | | NULL | | | JOB_ID | int (11) | НЕТ | MUL | NULL | | | DEPARTMENT_ID | int (11) | НЕТ | | NULL | | + --------------- + --------- + ------ + ----- + --------- + ------- +
Теперь посмотрите файл индекса.
+ ------------- + ------------ + ----------- + ---------- ---- + ------------- + ----------- + ------------- + ----- ----- + -------- + ------ + ------------ + --------- + | Таблица | Non_unique | Key_name | Seq_in_index | Имя столбца | Сопоставление | Кардинальность | Sub_part | Упаковано | Null | Index_type | Комментарий | + ------------- + ------------ + ----------- + ---------- ---- + ------------- + ----------- + ------------- + ----- ----- + -------- + ------ + ------------ + --------- + | JOB_HISTORY | 1 | fk_job_id | 1 | JOB_ID | A | 1 | NULL | NULL | | BTREE | | + ------------- + ------------ + ----------- + ---------- ---- + ------------- + ----------- + ------------- + ----- ----- + -------- + ------ + ------------ + --------- +
Здесь выше, файл индекса внешнего ключа появляется, хотя внешний ключ был удален, но действие ограничения внешнего ключа потеряно.
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите оператор SQL для добавления ограничения внешнего ключа с именем fk_job_id в столбец job_id таблицы job_history, ссылающейся на первичный ключ job_id таблицы jobs.
Далее: напишите оператор SQL для добавления индекса с именем indx_job_id в столбец job_id в таблице job_history.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования