Подтвердить что ты не робот

Вставить несколько строк в базу данных DB2

Я хочу вставить несколько строк в таблицу DB2. У меня есть запрос, похожий на этот

insert into tableName 
(col1, col2, col3, col4, col5) 
values 
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5),
(val1, val2, val3, val4, val5);

Этот запрос не работает. Я не знаю, есть ли более синтаксически правильный способ сделать это в DB2. Но было бы полезно вставить мои тестовые данные.

4b9b3361

Ответ 1

Я предполагаю, что вы используете DB2 для z/OS, к сожалению (по какой-то причине я никогда не понимал, почему) не поддерживает использование списка значений, где будет выбран полный выбор.

Вы можете использовать выбор, как показано ниже. Он немного громоздкий, но он работает:

INSERT INTO tableName (col1, col2, col3, col4, col5) 
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1 UNION ALL
SELECT val1, val2, val3, val4, val5 FROM SYSIBM.SYSDUMMY1

Ваше выражение будет работать на DB2 for Linux/Unix/Windows (LUW), по крайней мере, когда я проверил его на моем LUW 9.7.

Ответ 2

ОБНОВЛЕНИЕ - Еще менее многословная версия

INSERT INTO tableName (col1, col2, col3, col4, col5) 
VALUES ('val1', 'val2', 'val3', 'val4', 'val5'),
       ('val1', 'val2', 'val3', 'val4', 'val5'),
       ('val1', 'val2', 'val3', 'val4', 'val5'),
       ('val1', 'val2', 'val3', 'val4', 'val5')

Следующее также работает для DB2 и немного менее многословное

INSERT INTO tableName (col1, col2, col3, col4, col5) 
VALUES ('val1', 'val2', 'val3', 'val4', 'val5') UNION ALL
VALUES ('val1', 'val2', 'val3', 'val4', 'val5') UNION ALL
VALUES ('val1', 'val2', 'val3', 'val4', 'val5') UNION ALL
VALUES ('val1', 'val2', 'val3', 'val4', 'val5')

Ответ 3

другой метод

INSERT INTO tableName (col1, col2, col3, col4, col5)
select * from table(                        
                    values                                      
                    (val1, val2, val3, val4, val5),   
                    (val1, val2, val3, val4, val5),   
                    (val1, val2, val3, val4, val5),   
                    (val1, val2, val3, val4, val5)    
                    ) tmp