Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / пустое поле в insert into tab1 (field1,desc) values ((select.... / 5 сообщений из 5, страница 1 из 1
13.05.2005, 10:23
    #33061454
Vasily_s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пустое поле в insert into tab1 (field1,desc) values ((select....
Hi All!

Возникла тут задачка....
пусть есть две таблицы
CREATE TABLE tab1 (field1 int, prim varchar(64));
CREATE TABLE tab2 (id serial, opisanie char(32));
делаем
INSERT INTO tab1 (field1, prim) VALUES ((SELECT id FROM tab2 WHERE opisanie='test'),'primechanie');

Так вот, собственно сама проблема: если в таблице tab2 есть в таблице значение 'test', то все хорошо. Но если не существует записи с полем opisanie='test', то
в таблице tab1 поле field1 получает "непонятное значение".

Вопрос: как выбрать записи из tab1 c этим "непонятное значение" или как при INSERT сделать, что бы в field1 заносилось какое-то конкретное значение (например 0), если если не существует записи с полем opisanie='test'?

Заранее огромное СПАСИБА!!!
...
Рейтинг: 0 / 0
13.05.2005, 11:00
    #33061567
lionson
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пустое поле в insert into tab1 (field1,desc) values ((select....
NSERT INTO tab1 (field1, prim)
VALUES (
coalesce((SELECT id FROM tab2 WHERE opisanie='test'),'nifiga'),
'primechanie');
...
Рейтинг: 0 / 0
13.05.2005, 11:02
    #33061582
lionson
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пустое поле в insert into tab1 (field1,desc) values ((select....
Правда не забудь учесть, что запрос
SELECT id FROM tab2 WHERE opisanie='test'
может вернуть более одного значения
тода тебе выдаст ошибку
...
Рейтинг: 0 / 0
13.05.2005, 11:09
    #33061601
LeXa NalBat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пустое поле в insert into tab1 (field1,desc) values ((select....
Vasily_sкак выбрать записи из tab1 c этим "непонятное значение"select * from tab1 where field1 is null

Vasily_sкак при INSERT сделать, что бы в field1 заносилось какое-то конкретное значение (например 0), если если не существует записи с полем opisanie='test'?INSERT INTO tab1 (field1, prim) VALUES (coalesce((SELECT id FROM tab2 WHERE opisanie='test'),0),'primechanie')

еще можно не добавлять строку в tab1, если если не существует записи с полем opisanie='test': INSERT INTO tab1 (field1, prim) SELECT id, 'primechanie' FROM tab2 WHERE opisanie='test'
...
Рейтинг: 0 / 0
13.05.2005, 11:13
    #33061623
Vasily_s
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пустое поле в insert into tab1 (field1,desc) values ((select....
Всем спасибо БОЛЬШОЕ то что надо ;).
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / пустое поле в insert into tab1 (field1,desc) values ((select.... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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