powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли такое сделать в запросе ?
7 сообщений из 7, страница 1 из 1
Можно ли такое сделать в запросе ?
    #34417272
postman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравтсвуйте. У меня ест таблица в ней две колонки client_id (serial) и name (varchar), как можно узнать какой будет client_id при очередном insert ? Name может быть одинаковым у многих клиентов
...
Рейтинг: 0 / 0
Можно ли такое сделать в запросе ?
    #34417401
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делай
Код: plaintext
nextval
и явно задавай значение при
Код: plaintext
insert
...
Рейтинг: 0 / 0
Можно ли такое сделать в запросе ?
    #34417421
BlackDan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, нельзя. Но можно узнать после инсерта.
Читать тут.
http://www.postgresql.org/docs/current/static/functions-sequence.html
...
Рейтинг: 0 / 0
Можно ли такое сделать в запросе ?
    #34417983
postman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрел, почитал, но честно говоря не понял как сделать можно, можете пояснить?
...
Рейтинг: 0 / 0
Можно ли такое сделать в запросе ?
    #34418429
ilejn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет опасения, что при параллельной работе двух сессий вторая может узнать то значение, которое вставила первая?
...
Рейтинг: 0 / 0
Можно ли такое сделать в запросе ?
    #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
Можно ли такое сделать в запросе ?
    #34420102
postman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое Вам спсибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Можно ли такое сделать в запросе ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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