Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли такое сделать в запросе ? / 7 сообщений из 7, страница 1 из 1
27.03.2007, 09:11
    #34417272
postman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
Здравтсвуйте. У меня ест таблица в ней две колонки client_id (serial) и name (varchar), как можно узнать какой будет client_id при очередном insert ? Name может быть одинаковым у многих клиентов
...
Рейтинг: 0 / 0
27.03.2007, 10:03
    #34417401
Serik Akhmetov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
делай
Код: plaintext
nextval
и явно задавай значение при
Код: plaintext
insert
...
Рейтинг: 0 / 0
27.03.2007, 10:09
    #34417421
BlackDan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
Нет, нельзя. Но можно узнать после инсерта.
Читать тут.
http://www.postgresql.org/docs/current/static/functions-sequence.html
...
Рейтинг: 0 / 0
27.03.2007, 12:42
    #34417983
postman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
Посмотрел, почитал, но честно говоря не понял как сделать можно, можете пояснить?
...
Рейтинг: 0 / 0
27.03.2007, 14:24
    #34418429
ilejn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
Нет опасения, что при параллельной работе двух сессий вторая может узнать то значение, которое вставила первая?
...
Рейтинг: 0 / 0
27.03.2007, 15:33
    #34418741
BlackDan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
ilejnНет опасения, что при параллельной работе двух сессий вторая может узнать то значение, которое вставила первая?
Все функции по работе с последовательностями работают в контексте текущей сессии.

авторПосмотрел, почитал, но честно говоря не понял как сделать можно, можете пояснить?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE TABLE test_table(
  id serial not null,
  name varchar not null
);
-- Последовательность 'test_table_id_seq' создаётся автоматически

--1) Вариант
-- Выполняется инсерт в таблицу
INSERT INTO test_table(name) VALUES('name1111');
-- Извлекается последнее значение последовательности 'test_table_id_seq', которое было установленно в текущей сессии
SELECT currval('test_table_id_seq'); -- или SELECT lastval();


--2) Вариант
-- Вычисляется след. по порядку значение последовательности 'test_table_id_seq'
SELECT nextval('test_table_id_seq');
-- Выполняется инсерт в таблицу с явными параметрами
INSERT INTO test_table(id, name) VALUES(<полученнное_значение_последовательности>, 'name1111');
...
Рейтинг: 0 / 0
28.03.2007, 07:14
    #34420102
postman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли такое сделать в запросе ?
Большое Вам спсибо!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли такое сделать в запросе ? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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