В его самом простом это - просто механизм, который восстанавливает Ваш проект каждый раз, когда регистрация превращена в некоторую систему управления версиями (CVS и т.д.). Это может быть расширено, хотя включать запускающие тесты, полностью до генерации образа CD, монтирования его в VMs, установка продукта и запущение полных тестов на нем.
Это имеет простое преимущество выделения, когда изменения кода повреждают систему как можно раньше. Мало того, что это обнаруживает перерывы в коде, это выделяется, кто вызвал повреждение. Этот психологический эффект является очень эффективным при ободрительном хорошем тестировании до регистрации!
Следующий запрос дает имена всех последовательностей.
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
Обычно последовательность называется $ {table} _id_seq
. Простое сопоставление с образцом регулярного выражения даст вам имя таблицы.
Чтобы получить последнее значение последовательности, используйте следующий запрос:
SELECT last_value FROM test_id_seq;
после небольшой боли я понял.
лучший способ добиться этого - перечислить все таблицы
select * from pg_tables where schemaname = '<schema_name>'
, а затем для каждой таблицы перечислить все столбцы с атрибутами
select * from information_schema.columns where table_name = '<table_name>'
затем для каждого столбца проверьте, есть ли в нем последовательность
select pg_get_serial_sequence('<table_name>', '<column_name>')
, а затем получите информацию об этой последовательности
select * from <sequence_name>
Частично протестировано, но выглядит в основном завершенным.
select *
from (select n.nspname,c.relname,
(select substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
from pg_catalog.pg_attrdef d
where d.adrelid=a.attrelid
and d.adnum=a.attnum
and a.atthasdef) as def
from pg_class c, pg_attribute a, pg_namespace n
where c.relkind='r'
and c.oid=a.attrelid
and n.oid=c.relnamespace
and a.atthasdef
and a.atttypid=20) x
where x.def ~ '^nextval'
order by nspname,relname;
Кредит, за который следует воздать должное ... он частично реконструирован из записанного в журнал SQL из a \ d известной таблицы, имеющей последовательность. Я уверен, что он тоже мог бы быть чище, но эй,