Muszę upuścić tabelę DB2, jeśli istnieje, lub usunąć i zignorować błędy.Tabela upuszczania bazy danych DB2, jeśli istnieje, jest odpowiednikiem
Odpowiedz
pierwsze zapytanie, czy tabela istnieje, jak
select tabname from syscat.tables where tabschema='myschema' and tabname='mytable'
i jeśli zwróci coś wystawia
drop table myschema.mytable
Inne możliwością jest po prostu wydać polecenie drop i złapać wyjątek, który zostanie podniesiony jeśli tabela nie istnieje. Po prostu wstaw ten kod do bloku try {...} catch (Exception e) {// Ignore} dla tego podejścia.
Try/catch nie jest dobra, ponieważ wyjątek może nie wynikać z braku tabeli, ale z powodu faktu, że niektóre ograniczenia odwołują się do tej tabeli i nie można jej usunąć, dopóki te ograniczenia nie zostaną usunięte. – mvmn
@mvmn: DB2 (przynajmniej wersje, które znam) zawsze robi "kaskadowy" spadek. Więc każdy FK zostanie po cichu upuszczony i tak –
Spróbuj tego:
IF EXISTS (SELECT name FROM sysibm.systables WHERE name = 'tab_name') THEN
DROP TABLE tab_name;END IF;
Powinieneś rozważyć również nazwę schematu, w przeciwnym razie nazwa tabeli może istnieć w innym schemacie, ale nie w twojej, a wyjątek zostanie zgłoszony. –
Możesz również sprawdzić, czy jest to tabela (a nie widok). –
DB2 nie obsługuje tego rodzaju programowej kontroli przepływu – user119588
wyszukiwanie na systable: jeśli jesteś na AS400 (i zasilania, układ i) nazwa tabeli system jest QSYS2.SYSTABLES jeszcze spróbować SYSIBM.SYSTABLES lub syscat.tables (ta zależy od systemu operacyjnego)
BEGIN
IF EXISTS (SELECT NAME FROM QSYS2.SYSTABLES WHERE TABLE_SCHEMA = 'YOURLIBINUPPER' AND TABLE_NAME = 'YOUTABLENAMEINUPPER') THEN
DROP TABLE YOURLIBINUPPER.YOUTABLENAMEINUPPER;
END IF;
END ;
- 1. Składnia, jeśli istnieje w IBM Db2
- 2. Aktualizacja schematu bazy danych bez upuszczania danych?
- 3. Utworzenie bazy danych Postgres, jeśli nie istnieje
- 4. Usuń wiersz, jeśli istnieje tabela SQL
- 5. "Tabela preferencji użytkownika" Projekt tabeli bazy danych
- 6. Symulować tworzenie bazy danych, jeśli nie istnieje dla PostgreSQL?
- 7. sqlalchemy, stworzenie bazy danych SQLite, jeśli nie istnieje
- 8. Czy istnieje jakiś sposób, aby wykryć, czy tabela bazy danych istnieje z laravel
- 9. Hibernate: tworzenie bazy danych tylko, jeśli nie istnieje
- 10. SQL tworzyć bazy danych, jeśli nie istnieje, nieoczekiwane zachowanie
- 11. Narzędzia modelu danych dla DB2
- 12. Tabela sprawdzająca istnieje
- 13. Jeśli jest inny warunek w zapytaniu bazy danych H2
- 14. Jeśli tabela istnieje, upuść, a następnie utwórz go, jeśli nie istnieje, po prostu stwórz go
- 15. Niewrażliwy indeks bazy danych?
- 16. Sprawdź, czy istnieje tabela, jeśli instrukcja w C#?
- 17. Haskell jest odpowiednikiem Scala's groupBy
- 18. nazwa zmiennej bazy danych
- 19. Baza danych - tabela faktów i tabela wymiarów
- 20. Jaki jest cel schematu bazy danych?
- 21. Co to jest tabela odnośników?
- 22. Sprawdź, czy istnieje tabela
- 23. R jest odpowiednikiem polecenia "compress" Staty?
- 24. Co to jest tabela android_metadata?
- 25. Czy iframe jest odpowiednikiem okna?
- 26. Czy istnieje znacznik XML, który jest odpowiednikiem `ListView.addHeaderView '?
- 27. Zapytanie Różne bazy danych - Ta sama tabela SQL Server 2012
- 28. DEKLARACJA GLOBALNA TABELA CZASOWA V Tworzenie tabeli globalnej w DB2
- 29. Jak porównać dwie bazy danych?
- 30. Jak AUTO_INCREMENT w db2?
W jakim kontekście to robisz? Jeśli wykonujesz skrypt, niezbędne umiejętności _may_ nie będą dostępne. Jeśli robisz to na wyższym poziomie/aplikacji (RPG, Java, C#, itp.), Jest to zwykle banalne. –
Sprawdź, czy to pomaga: http://bytes.com/topic/db2/answers/509144-drop-table-view-only-if-exists –
Robię to na JAVA –