Necesito dejar caer una tabla de DB2 si existe, o descartar e ignorar los errores.DB2 Drop table si existe equivalente
Respuesta
Primera consulta si existe la tabla, como
select tabname from syscat.tables where tabschema='myschema' and tabname='mytable'
y si se vuelve tema algo que su
drop table myschema.mytable
Otra posibilidad es simplemente emitir el comando de caída y detectar la excepción que será levantada si la tabla no existe Simplemente ponga ese código adentro intente el bloque {...} catch (Exception e) {// Ignore} para ese enfoque.
El try/catch no es bueno porque el la excepción puede deberse a la ausencia de la tabla, pero debido al hecho de que algunas restricciones hacen referencia a esta tabla y no se puede descartar hasta que se eliminen esas restricciones. – mvmn
@mvmn: DB2 (al menos las versiones que conozco) siempre realiza una caída en "cascada". Por lo tanto, cualquier FK se cancelará de todos modos –
Prueba con esto:
IF EXISTS (SELECT name FROM sysibm.systables WHERE name = 'tab_name') THEN
DROP TABLE tab_name;END IF;
También debe considerar el nombre del esquema; de lo contrario, el nombre de la tabla podría existir en otro esquema, pero no en el suyo, y se lanzará una excepción. –
Y también es posible que desee comprobar que se trata de una tabla (y no una vista). –
DB2 no es compatible con este tipo de control de flujo programático – user119588
búsqueda en systable: si está en AS400 (i potencia, sistema i) el nombre de la tabla sistema se QSYS2.SYSTABLES demás tratan sysibm.systables o syscat.tables (Este depende del sistema operativo)
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. Postgresql DROP TABLE no funciona
- 2. Heroku Drop Table Rails Ayuda
- 3. DROP TABLE falla para la tabla temporal
- 4. generate_series() equivalente en DB2
- 5. Servidor SQL: Drop Table con FK
- 6. drop table en python con sqlite3
- 7. Cómo utilizar DROP TABLE IF EXISTS en MySQL Stored Procedure
- 8. hibernate table no existe error
- 9. Drop table en Sql Server por Sql Server Management Studio
- 10. hg shelve equivalente a git stash drop
- 11. MySQL Table no existe error, pero existe
- 12. Retuns en ICS y Samsung Nexus en DROP TABLE
- 13. Mysql Drop Table como PreparedStatement no funciona para mí
- 14. db2 equivalente a la tabla temporal tsql
- 15. SQL Server Agent Job - ¿Existe entonces Drop?
- 16. ¿Cuál es la diferencia entre drop table y delete table en SQL Server?
- 17. Python y MySQLdb - El uso de DROP TABLE IF EXISTS parece arrojar una excepción
- 18. Caída de una tabla temporal si existe
- 19. Verificar si la columna ya existe y si no Alter Table en sqlite
- 20. Eliminar fila si existe tabla SQL
- 21. ¿Cuál es el equivalente de Varchar (máximo) para DB2?
- 22. jQuery función de vinculación drop-to-drop?
- 23. DB2: ¿Cómo concatenar cadenas nulas en DB2?
- 24. ¿Cómo verificar si existe una restricción en el servidor Sql?
- 25. DB2: ¿Cómo puedo encontrar si una columna está presente en una tabla o lista de tablas?
- 26. ¿Qué hace la opción "Añadir DROP TABLE/VER/PROCEDIMIENTO/FUNCIÓN" en phpmyadmin
- 27. Scripts SQL: ¿existe el equivalente de #define?
- 28. DB2 CASE Statement
- 29. Oracle - Zombie Table
- 30. Función IsNull en DB2 SQL?
¿En qué contexto está ejecutando esto? Si está ejecutando un script, las habilidades necesarias _may_ no estarán disponibles. Si estás haciendo esto desde un nivel/aplicación superior (RPG, Java, C#, etc.), esto suele ser trivial. –
Vea si esto ayuda: http://bytes.com/topic/db2/answers/509144-drop-table-view-only-if-exists –
Lo hago en JAVA –