|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Как добавить запись в таблицу, имеющую внешний ключ |
|
MySQL - Как добавить запись в таблицу, имеющую внешний ключ
|
Старожил Сообщения: 201 |
Профиль | Отправить PM | Цитировать База MySQL. Есть таблица отделов Units со столбцами: Unit_Id, Unit_Name. Unit_Id - Primary key. Далее есть таблица сотрудников Users со столбцами User_Id, User_name, Unit_Id. User_Id - Primary key а Unit_Id естественно внешний ключ. Таблица отделось Units заполнена, а таблицу сотрудников надо будет заполнять (или добавлять/удалять) начальникам отделов. Начальник отдела знает только название своего отдела а идентификатор, естественно не знает. Как составить запрос на вставку (или удаление) сотрудника, чтобы идентификатор отдела был взят из таблицы отделов по его названию?
И, кроме того, как все это сделать с помощью пакетной вставки - сотрудников много. Более точное описание таблиц такое: Units mysql> DESCRIBE Units; +-----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------------------+------+-----+---------+----------------+ | Unit_Id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | unit_name | varchar(30) | YES | UNI | NULL | | +-----------+----------------------+------+-----+---------+----------------+ mysql> DESCRIBE Users; +-----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+----------------------+------+-----+---------+----------------+ | User_Id | smallint(5) unsigned | NO | PRI | NULL | auto_increment | | User_name | varchar(31) | NO | UNI | | | | Unit_Id | smallint(5) unsigned | YES | MUL | NULL | | +-----------+----------------------+------+-----+---------+----------------+ Imysql> INSERT INTO Users(User_name) VALUES( 'Иванов И.' ); Query OK, 1 row affected (0.00 sec) mysql> UPDATE Users SET Unit_id = (SELECT Unit_id FROM Units WHERE unit_name = 'Отдел Систем Управления') WHERE Unit_Id = 0; Query OK, 0 rows affected (0.00 sec) Как все-таки вставить эти записи? Хотя бы без пакетной вставки! |
|
Отправлено: 16:54, 25-03-2009 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Цитата andrystepa:
Что можно сделать: |
|
------- Отправлено: 01:43, 26-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 201
|
Профиль | Отправить PM | Цитировать Спасибо, разобрался. В моем втором запросе вместо WHERE Unit_Id = 0 надо было ставить WHERE Unit_Id IS NULL; так как NULL и 0 не одно и то же. Впрочем Delirium, - Ваш вариант получше будет - все-таки один запрос.
|
Отправлено: 15:24, 26-03-2009 | #3 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Всегда рады помочь
|
------- Отправлено: 02:01, 27-03-2009 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как добавить ключ реестра, при условии что винда не загружается? | Blast | Microsoft Windows 2000/XP | 56 | 26-01-2013 13:01 | |
[решено] Добавить свою запись в Службу Windows | Luidgy | Хочу все знать | 9 | 23-01-2011 19:33 | |
Добавить запись в DNS в AD | alex_39 | Microsoft Windows NT/2000/2003 | 2 | 14-10-2009 15:57 | |
Разное - Дополнительный HDD с другой версией ОС, добавить на нее учетную запись | 7human7 | Microsoft Windows Vista | 3 | 02-10-2009 19:54 | |
Как добавить ключ | Guest | Хочу все знать | 1 | 29-02-2004 20:01 |
|