SQLсервер в Linux -самостоятельное освоение пакета

         

Функция currval()



Листинг 7.31. Функция currval()

booktown=# INSERT INTO shipments (customer_id, isbn, ship_date)

booktown-# VALUES (221. '0394800753', 'now');
INSERT 3628625 1

booktown=# SELECT * FROM shipments

booktown-# WHERE Id = currval('shipments_ship_id_seq'):

id | customerjd | Isbn | ship_date

1002 ! 107 | 0394800753 | 2001-09-22 11:23:28-07

(1 row)

Наконец, функция setval () присваивает атрибуту 1 ast_val lie последовательности произвольное число из интервала допустимых значений. Первый аргумент функции содержит имя последовательности, заключенное в апострофы, а второй аргумент содержит целочисленную константу, представляющую новое значение last_value.

Существует два варианта вызова функции setval О. По умолчанию предполагается, что новое значение относится к инициализированной последовательности; это означает, что следующее значение, возвращенное nextval О, уже будет увеличено по отношению к величине, переданной при вызове setval О.

Кроме того, последовательность можно деинициализировать, для чего в необязательном последнем аргументе передается логическая величина false. Последовательность изменяется так, что следующий вызов nextval О вернет то же число, которое было передано при вызове setval () (хотя при следующем вызове nextval () последовательность увеличится).

В листинге 7.32 приведены оба варианта замены текущего значения последовательности shipments_ship_id_seq с последующими вызовами nextval О, демонстрирующими полученный результат.



Содержание раздела