Упражнения оператора MySQL Alter Table: добавление внешнего ключа в столбец job_id таблицы job_history, ссылающейся на первичный ключ job_id таблицы jobs
MySQL Alter Table Statement: Упражнение 11 с решением
Напишите инструкцию SQL для добавления внешнего ключа в столбец job_id таблицы job_history, ссылающейся на первичный ключ job_id таблицы jobs.
Вот структура таблицы jobs и job_history.
mysql> SHOW COLUMNS FORM заданий; + ------------ + -------------- + ------ + ----- + -------- - + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + ------------ + -------------- + ------ + ----- + -------- - + ------- + | JOB_ID | int (11) | НЕТ | PRI | NULL | | | JOB_TITLE | Варчар (35) | НЕТ | | NULL | | | MIN_SALARY | десятичное число (6,0) | ДА | | NULL | | | MAX_SALARY | десятичное число (6,0) | ДА | | NULL | | + ------------ + -------------- + ------ + ----- + -------- - + ------- + mysql> ПОКАЗАТЬ КОЛОННЫ ИЗ job_history; + --------------- + --------- + ------ + ----- + --------- + ------- + | Поле | Тип | Null | Ключ | По умолчанию | Extra | + --------------- + --------- + ------ + ----- + --------- + ------- + | EMPLOYEE_ID | int (11) | НЕТ | | NULL | | | START_DATE | дата | ДА | | NULL | | | HIRE_DATE | дата | ДА | | NULL | | | JOB_ID | int (11) | НЕТ | | NULL | | | DEPARTMENT_ID | int (11) | НЕТ | | NULL | | + --------------- + --------- + ------ + ----- + --------- + ------- +
Код:
ALTER TABLE job_history
ADD FOREIGN KEY(job_id)
REFERENCES jobs(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 | |
+ --------------- + --------- + ------ + ----- + --------- + ------- +
Теперь посмотрите созданный индексный файл.
mysql> SHOW INDEX FROM job_history; + ------------- + ------------ + ---------- + ----------- --- + ------------- + ----------- + ------------- + ------ ---- + -------- + ------ + ------------ + --------- + | Таблица | Non_unique | Key_name | Seq_in_index | Имя столбца | Сопоставление | Кардинальность | Sub_part | Упаковано | Null | Index_type | Комментарий | + ------------- + ------------ + ---------- + ----------- --- + ------------- + ----------- + ------------- + ------ ---- + -------- + ------ + ------------ + --------- + | job_history | 1 | JOB_ID | 1 | JOB_ID | A | NULL | NULL | NULL | | BTREE | | + ------------- + ------------ + ---------- + ----------- --- + ------------- + ----------- + ------------- + ------ ---- + -------- + ------ + ------------ + --------- +
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите оператор SQL, чтобы удалить существующий первичный элемент из расположений таблицы в комбинации столбцов location_id и country_id.
Далее: напишите инструкцию SQL для добавления ограничения внешнего ключа с именем fk_job_id в столбец job_id таблицы job_history, ссылающейся на первичный ключ job_id таблицы jobs.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования