Po wstawieniu zbyt wielu danych do pliku bazy danych sqlite pojawia się błąd "zbyt wiele warunków w złożonym WYBIERZ". Używam "insert into ... select ... union select ... union ...
". Wiem, że to zbyt wiele wybranych instrukcji, ale moje pytanie brzmi: Jaka jest maksymalna liczba terminów w złożonej instrukcji SELECT?Błąd SQLite: zbyt wiele terminów w składzie WYBIERZ
Odpowiedz
Złożona instrukcja SELECT to dwie lub więcej instrukcji SELECT połączonych przez operatorów UNION, UNION ALL, EXCEPT lub INTERSECT. Nazywamy każdą indywidualną instrukcję SELECT w składniku WYBIERZ "termin".
Generator kodu SQLite przetwarza złożone instrukcje SELECT za pomocą algorytmu rekursywnego. Aby ograniczyć rozmiar stosu, ograniczamy zatem liczbę terminów w składniku SELECT. Maksymalna liczba terminów to SQLITE_MAX_COMPOUND_SELECT, która domyślnie wynosi 500. Uważamy, że jest to hojny przydział, ponieważ w praktyce prawie nigdy nie widzimy liczby terminów w złożonym wyborze przekraczającym pojedyncze cyfry.
Maksymalna liczba złożonych warunków SELECT może zostać obniżona w czasie wykonywania przy użyciu interfejsu sqlite3_limit (db, SQLITE_LIMIT_COMPOUND_SELECT, size).
więcej szczegółów proszę to sprawdzić ... http://www.sqlite.org/limits.html
Nie ma limitu liczby używanych SELEKTÓW. Wszystko, co musisz zrobić, to sprawdzić, czy lista kolumn jest zgodna z INSERT cols.
w SQLite istnieje ograniczenie na liczbę w wybranych wypowiedzi pls sprawdź to właściwie ... – shofee
- 1. Błąd "Zbyt wiele otwartych plików" w pdflatex
- 2. zbyt wiele argumentów błąd w skrypcie bash
- 3. IntelliJ zbyt wiele plików otworzyć błąd
- 4. Kiedy błąd jest sprawdzany zbyt wiele?
- 5. "Zbyt wiele zmiennych SQL" Błąd w Django witih sqlite3
- 6. Błąd Node.js: zbyt wiele parametrów Błąd podczas przesyłania danych zbiorczych
- 7. Wiele wybierz w Vim
- 8. Wybierz wiele w Rx
- 9. wstawić wiele wierszy w SQLite
- 10. Zbyt wiele instrukcji if
- 11. „Zbyt wiele znaków w postaci dosłownej błędu”
- 12. SQLite: GROUP_CONCAT() wiele kolumn
- 13. Zbyt wiele argumentów w BeginXXX dla FromAsync?
- 14. Wybierz losowy wiersz (y) w SQLite
- 15. AWS API Bramka: Błąd 429 Zbyt wiele żądań
- 16. RSpec i Mechanik błąd: zbyt wiele otwartych plików
- 17. wybierz wiele dzieci w css
- 18. Heroku POSTGRESQL - Błąd "Zbyt wiele połączeń dla roli"
- 19. Dlaczego pojawia się błąd "Zbyt wiele lokalnych stałych"?
- 20. Zbyt wiele indeksów w RavenDBZbyt wiele indeksów w RavenDB
- 21. Stosowanie argumentów funkcjonowała w składzie Haskell
- 22. JQ: Wybierz wiele warunków
- 23. Podświetlanie Solr wielu terminów
- 24. JQuery wybierz wiele po łańcuchach wybierz
- 25. LINQ Wybierz wiele wartości
- 26. MySQL Wybierz wiele wartości
- 27. Zbyt wiele argumentów w mojej funkcji - Python
- 28. Zbyt wiele podzielonych ekranów otwieranych w Emacs!
- 29. Podprocesing w Pythonie: zbyt wiele otwartych plików
- 30. Błąd w mojej składni SQLite
Dziękuję bardzo. Moje instrukcje SELECT minęły 500! –
hmm nie powinien minąć 500! :) .. – shofee
@shobi, ponieważ starsze wersje sqlite (<3.7.11) nie pozwalają na wstawianie wielu wierszy za pomocą INSERT INTO nazwa tabeli (nazwa kolumny) VALUES (wartość1), (wartość2), ... bardzo łatwo jest zakończyć z obejściem zawierającym> 500 terminów UNION dla prostego wstawiania, np. INSERT INTO nazwa tabeli (nazwa kolumny) WYBIERZ wartość1 AS 'nazwa_kolumny' UNION SELECT wartość2 UNION SELECT wartość3 ... UNION SELECT wartość999 – sdjuan