Когда я вставляю слишком много данных в файл базы данных sqlite, возникает ошибка "слишком много терминов в составном SELECT". Я использую "insert into ... select ... union select ... union ...
". Я знаю, что слишком много операторов выбора, но мой вопрос: какое максимальное количество терминов в составной инструкции SELECT?
Ошибка SQLite: слишком много терминов в составе SELECT
Ответ 1
Составная инструкция SELECT представляет собой два или более оператора SELECT, связанных операторами UNION, UNION ALL, EXCEPT или INTERSECT. Мы называем каждую отдельную инструкцию SELECT в составе SELECT "термином".
Генератор кода в SQLite обрабатывает сложные инструкции SELECT с использованием рекурсивного алгоритма. Чтобы ограничить размер стека, мы поэтому ограничиваем количество членов в составе SELECT. Максимальное количество терминов - SQLITE_MAX_COMPOUND_SELECT, значение по умолчанию - 500. Мы считаем, что это щедрое выделение, так как на практике мы почти никогда не видим, чтобы количество членов в составном элементе превышало отдельные цифры.
Максимальное количество составных терминов SELECT можно снизить во время выполнения, используя интерфейс sqlite3_limit (db, SQLITE_LIMIT_COMPOUND_SELECT, размер).
Для получения дополнительной информации, пожалуйста, проверьте это... http://www.sqlite.org/limits.html
Ответ 2
Нет ограничений на количество используемых вами SELECT. Все, что вам нужно сделать, это проверить, совпадают ли столбцы столбцов с колонками INSERT.