¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo eliminar una tabla si ya existe en SQLScript: guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Hola a todos,

Me gustaría saber cómo eliminar una tabla si ya existe,

así que intenté usar la declaración if exists para hacer esto, pero parece que no funciona:

Por ejemplo, si el nombre de mi tabla es DATA_TAB, hice lo siguiente:

if exists (select * from DATA_TAB)

(

drop table type DATA_TAB

)

La sintaxis correcta para SQLScript es

if exists (select * from DATA_TAB)

then

drop table type DATA_TAB

end if;

sigue sin funcionar;

¿Alguien tiene una idea de cómo hacer esto?

Gracias y saludos

Mohamed Ali

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola Ravi,

¿Cómo puedo ver la tabla?

Gracias

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola a todos, he creado un procedimiento para verificar si un tipo ya existe y eliminarlo en ese caso. Me inspiré en el hilo http://www.saphana.com/thread/1486 y en la respuesta de Ravi. Y lo comparto aquí por si alguien lo necesita:

DROP PROCEDURE existsType;

CREATE PROCEDURE existsType

( IN tablename VARCHAR(20), IN schemaname VARCHAR(20)

) LANGUAGE SQLSCRIPT AS myrowid INTEGER;

BEGIN

myrowid := 0;

SELECT COUNT(*) INTO myrowid FROM tables WHERE schema_name = :schemaname AND table_name = :tablename;

IF (:myrowid > 0 ) THEN

EXEC 'DROP TABLE ' || :schemaname || '.' || :tablename;

END IF;

END;

Saludos cordiales

Mohamed Ali

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Hola!

Por favor, revisa la vista TABLAS .

select * from tables where table_name like '%your_table_type%';

Saludos,

Ravi

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

ok, encontré una solución para eliminar una tabla en este hilo:

http://www.saphana.com/thread/1486

que básicamente es: crear un nuevo procedimiento para verificar si la tabla en cuestión

existe y eliminarla si es así. Aquí está el procedimiento a crear.

drop procedure existstable;
create procedure existstable
( IN tablename VARCHAR(20), IN schemaname varchar(20)
) LANGUAGE SQLSCRIPT AS myrowid integer;

BEGIN
myrowid := 0;
select count(*) into myrowid from "PUBLIC"."M_TABLES" where schema_name =:schemaname and table_name=:tablename;

IF (:myrowid > 0 ) then
exec 'DROP TABLE '||:schemaname||'.'||:tablename;

END IF;

End;

resultó que la información de la tabla de tipo de datos no se almacena en el mismo

lugar que la información de la tabla:

en otros términos: la información de la tabla creada por el usuario se almacena

en la tabla "PUBLIC"."M_TABLES" , ahora estoy buscando la tabla

en la que se almacenan la información de los tipos creados por el usuario para poder crear

un procedimiento como el anterior para eliminar un tipo.

espero ser lo suficientemente claro;

¿Alguien sabe cuál es el nombre de la tabla que contiene información sobre el tipo creado por el usuario?

Gracias y saludos

Mohamed Ali

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?