Вставить (INSERT INTO) таблицу в другую таблицу, содержащую последовательность (SERIAL)

У меня есть основная таблица, созданная как:

    CREATE TABLE main_data
    (
      id SERIAL NOT NULL,
      name character varying(249),
      telephone character varying(248)
    )

Пока я получаю новую таблицу backup_date, содержащую только имя и телефон, которую я восстанавливаю и добавляю в свою базу данных.

Теперь я хочу добавить backup_date к main_data, чтобы при добавлении таблицы backup_date к main_table она автоматически продолжала последовательность id. Как я могу это сделать?

ПРИМЕЧАНИЕ После долгих поисков я нашел только это решение;

INSERT INTO users (name, age, id) VALUES ('Mozart', 20, DEFAULT);

так как у меня огромное количество данных в backup_date я не могу его использовать.


person Hassaan Ahmed    schedule 07.07.2017    source источник


Ответы (2)


Если я правильно понял, все, что вам нужно, это:

insert into main_data (name,telephone) select name,telephone from backup_date 
person Vao Tsun    schedule 07.07.2017
comment
Означает ли SERIAL идентификатор автоинкремента? - person jarlh; 07.07.2017
comment
серийный номер - это ярлык для создания последовательности, назначьте его таблице, задайте значение по умолчанию для поля как nextval - так что да, очень близко, я думаю - person Vao Tsun; 07.07.2017
comment
Спасибо за информацию. Кажется, это удобно! - person jarlh; 07.07.2017
comment
Черт, я добавил столбец id в backup_date как NULL, а затем попытался вставить все три столбца, неудивительно, что я завел себя в кроличью нору, в то время как ответ был таким простым и незамысловатым. Спасибо @VaoTsun - person Hassaan Ahmed; 07.07.2017

Привет, Хасан -

Если ваш столбец идентификатора автоматически увеличивается, тогда только ваш код будет -

insert into main_data (name,telephone) select name,telephone from backup_date where [your condition]

И если ваш столбец ID не имеет автоматического увеличения, сначала установите для него автоматическое увеличение, а затем выполните вышеуказанный запрос. Спасибо :)

person Santosh Paswan    schedule 07.07.2017