Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подзапрос в операторе INSERT / 7 сообщений из 7, страница 1 из 1
03.05.2008, 23:22
    #35291349
YuriyV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
Всем привет!
есть такие таблицы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
таблица информации
(поле info_id является ключевым)
CREATE TABLE info(info_id INTEGER, name VARCHAR( 32 ));

таблица пользователей 
(поле user_id является ключевым, поле info_id определено как внешний ключ к таблице info )
CREATE TABLE users(user_id INTEGER, name VARCHAR( 32 ), info_id INTEGER default NULL);

таблица групп 
(поле group_id является ключевым)
CREATE TABLE groups(group_id INTEGER, name VARCHAR( 32 ));

таблица связей групп и пользователей 
(поле uid_gidID является ключевым, поле user_id определено как внешний ключ к таблице
users, поле group_id определено как внешний ключ к таблице groups)
CREATE TABLE uid_gid(uid_gidID INTEGER NOT NULL AUTO_INCREMENT,user_id INTEGER, group_id INTEGER);

Подскажите, пожалуйста, как с помощью запроса заполнить таблицу связей uid_gid.
Думаю, что нужно использовать подзапрос в операторе INSERT, но возникает проблема с полем uid_gidID.
...
Рейтинг: 0 / 0
04.05.2008, 11:45
    #35291805
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
1. Используете insert ... values ... или insert ... select ...?
2. Какая именно "проблема с полем uid_gidID"?
...
Рейтинг: 0 / 0
04.05.2008, 14:22
    #35292205
YuriyV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
Сергей Васкецов1. Используете insert ... values ... или insert ... select ...?
2. Какая именно "проблема с полем uid_gidID"?

1. Можно использовать и insert ... values ... и insert ... select ..., пробовал с insert ... select ..., но не могу составить рабочий запрос.
2. в поле uid_gidID надо вставлять значение NULL. Как составить рабочий запрос? Если можно примерчик, пожалуйста.
...
Рейтинг: 0 / 0
04.05.2008, 14:46
    #35292266
Сергей Васкецов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
YuriyV2. в поле uid_gidID надо вставлять значение NULL
Вы уж разберитесь сами, как это согласуется с
Код: plaintext
uid_gidID INTEGER NOT NULL AUTO_INCREMENT
...
Рейтинг: 0 / 0
05.05.2008, 14:14
    #35294391
YuriyV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
Почему не работает такой запрос?
Код: plaintext
1.
insert into uid_gid 
values (null,"select user_id from users where name = 'студент'", 2 );
в MySQL вылетает ошибка
Cannot add or update a child row: a foreign key constraint fails

Такой запрос работает
Код: plaintext
1.
insert into uid_gid 
values (null, 1 , 2 );
...
Рейтинг: 0 / 0
05.05.2008, 14:48
    #35294509
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
YuriyVПочему не работает такой запрос?
Код: plaintext
1.
insert into uid_gid 
values (null,"select user_id from users where name = 'студент'", 2 );
в MySQL вылетает ошибка
Cannot add or update a child row: a foreign key constraint fails потому что он не верный.

Попробуй так:
Код: plaintext
1.
2.
3.
insert into uid_gid 
select NULL, user_id,  2  
from users 
where name = 'студент';
...
Рейтинг: 0 / 0
05.05.2008, 16:05
    #35294801
YuriyV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подзапрос в операторе INSERT
Bely
Попробуй так:
Код: plaintext
1.
2.
3.
insert into uid_gid 
select NULL, user_id,  2  
from users 
where name = 'студент';


Благодарю, за помощь.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / подзапрос в операторе INSERT / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]