Таким образом, вы
- сохранить все строки (включая дубликаты)
- сохранить неизменные идентификаторы для значений из первой таблицы
- сохранить идентификаторы, которые вы можете сопоставить со второй таблицей
WITH x AS (
SELECT max(id) AS x
FROM tbl1
)
SELECT id, val
FROM tbl1
UNION ALL
SELECT x + id, val
FROM tbl2, x
ORDER BY id;
Вам необходим PostgreSQL 8.4 или новее для CTE .
Вы можете просто взглянуть на максимум tbl1
и увеличить ID с tbl2
на большее круглое число, большее этого.
Если вам не нужны предыдущие идентификаторы, избавьтесь от дубликатов значений и у вас есть идентификаторы без пробелов (изначально), тогда ответ @ a_horse'e будет вам лучше.