кодесурса
«MySQL

Упражнения оператора MySQL Alter Table: добавление внешнего ключа в столбец job_id таблицы job_history, ссылающейся на первичный ключ job_id таблицы jobs

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code