Это работает отлично:SQLite пакетные вставки в несколько таблиц
insert into Genres (ID, Genre)
select 1 AS ID, 'Action' AS Genre
union select 2, 'Adventure'
... и это работает прекрасно:
insert into Movies_Genres (ID, MovieID, GenreID)
select 1 AS ID, 2 AS MovieID, 1 AS GenreID
union select 2, 3, 1
... но когда я пытаюсь объединить эти два заявления:
insert into Genres (ID, Genre)
select 1 AS ID, 'Action' AS Genre
union select 2, 'Adventure'
insert into Movies_Genres (ID, MovieID, GenreID)
select 1 AS ID, 2 AS MovieID, 1 AS GenreID
union select 2, 3, 1
... это вызывает ошибку. Я также попытался разделить две таблицы на точку с запятой, но также получил ошибку. «Произошла ошибка при анализе предоставленного оператора SQL». И "синтаксическая ошибка". У меня есть большое количество вставок, чтобы сделать, так что мне нужно, чтобы максимально увеличить производительность, и я нашел этот подход очень надежный и быстрый:
How to insert multiple rows into a SQLite 3 table?
Итак, что такое правильный синтаксис для партии вместе куча вставки, предназначенные для разных таблиц?
Используйте UNION ALL вместо UNION. –
Как вы выполняете инструкции 'INSERT' для sqlite3? Если вы делаете это, используя метод, который ожидает один оператор, вы не сможете включать оба оператора 'INSERT' в одном представлении. –