Ваш вопрос немного расплывчат, но я предполагаю, что ваши id
имеют тип int / bigint.И вы хотите, чтобы эти идентификаторы были глобально уникальными, а не только внутри одной таблицы.
Может быть много вариантов.Это один из самых простых, но, возможно, не самый элегантный способ.Сначала создайте последовательность для предоставленных идентификаторов, например:
CREATE SEQUENCE globally_unique_id;
Затем просто обновите все 11 таблиц, например:
UPDATE table1 SET id = nextval('globally_unique_id');
Использование этой последовательности не даст вамтот же идентификатор для любых строк во всех таблицах.
Если у вас есть ограничения внешнего ключа в других таблицах для столбца 'id', которые не объявлены каскадно при обновлении, у вас большие проблемы.Но это другая история.
Конечно, вам не нужно делать это по таблице.Например, вы можете запросить системные таблицы Postgres для всех таблиц - например, спросили здесь - (или создать массив имен таблиц вручную) и циклические таблицы с идентификатором в каком-то специально созданном запросе или процедуре.
Но, по моему мнению, «только» 11 таблиц могут не стоить того, чтобы их кодировать.С другой стороны, это может быть полезно позже, если вам нужно сделать то же самое снова.