PostgreSQL, что такое Последовательности? |
Здравствуйте, гость ( Вход | Регистрация )
PostgreSQL, что такое Последовательности? |
Litkevich Yuriy |
13.3.2011, 15:04
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ковырялся в PGAdmin, переведённом, увидел там в дереве пункт - "Последовательности".
Т.к. с PostgreSQL дел не имел, а только с Firebird, поясните на пальцах, что такое последовательности? Это не тоже что и генераторы в Firebird? |
|
|
Sergey B. |
15.3.2011, 13:31
Сообщение
#2
|
Студент Группа: Новичок Сообщений: 16 Регистрация: 12.2.2008 Пользователь №: 92 Спасибо сказали: 1 раз(а) Репутация: 0 |
ковырялся в PGAdmin, переведённом, увидел там в дереве пункт - "Последовательности". Т.к. с PostgreSQL дел не имел, а только с Firebird, поясните на пальцах, что такое последовательности? Это не тоже что и генераторы в Firebird? Генератор в FB - это старший мастер ключ в таблице +1? Если да то оно. |
|
|
Litkevich Yuriy |
15.3.2011, 17:36
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Генератор в FB - это старший мастер ключ в таблице +1? нет, но для таких целей обычно и используютДля реализации автоинкрементного поля в FB используют связку Тригер+Генератор. В тригере пишут примерно такой код: где:NEW.ID - новое значение поля ID GEN_ID - вызов функции, которая получает у генератора GEN_BLOBS новое значение, посредством прибавления к нему "1". Аналог этой строчки на Си:
Т.е. GEN_BLOBS по сути просто аналог статической переменной в Cи/Cи++. Особенность её - она живёт вне транзакций. Т.е. если транзакцию откатить, то генератор не вернётся в прежнее состояние, это необходимо иначе начнётся каша. |
|
|
Disaron |
16.3.2011, 12:42
Сообщение
#4
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 19.2.2011 Пользователь №: 2420 Спасибо сказали: 0 раз(а) Репутация: 0 |
ковырялся в PGAdmin, переведённом, увидел там в дереве пункт - "Последовательности". Т.к. с PostgreSQL дел не имел, а только с Firebird, поясните на пальцах, что такое последовательности? Это не тоже что и генераторы в Firebird? На пальцах это контейнер с регулируемым автоинкрементом. Можно использовать, например, для ключевого поля в таком синтаксисе:
где sq_id_tbl собственно сама последовательность. Счетчик назад не откатывается, при удалении элемента таблицы, хотя вручную откатить можно без проблем - правкой секваенса. |
|
|
Текстовая версия | Сейчас: 28.11.2024, 17:22 |