Задать вопрос
@brud
специально для самых нежных и трепетных

Может ли Postgres проставлять автоинкременты самостоятельно при инсерте из селекта?

Имеется Temporary Table, назовем ее tmp_tbl, повторяющая структуру таблицы, которую нужно обновить (пусть будет tbl1), за исключением отсутствия в таблице tmp_tbl поля id - оно является автоинкрементом в tbl1. При попытке выполнить такой запрос:

WITH tmp as (SELECT * FROM tmp_tbl) INSERT INTO tbl1 (SELECT * FROM tmp)


Получаю такое великолепное сообщение:

SQLSTATE[42804]: Datatype mismatch: 7 ERROR: column "id" is of type integer but expression is of type character varying HINT: You will need to rewrite or cast the expression.


Вопрос: возможно ли повторно сообщить постгресу, что заполнять автоинкременты - это его обязанность?
  • Вопрос задан
  • 683 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
sim3x
@sim3x
-- Create a temporary table
   CREATE TEMPORARY TABLE temp_location
   (
      mytable_key    serial primary key,
      id int,
      ...
   ) 
   ON COMMIT DELETE ROWS;


www.sqlines.com/postgresql/statements/create_tempo...
stackoverflow.com/questions/7718585/how-to-set-aut...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы