Databases
T05-004 Eliminación de tablas
Enunciado
TRUNCATE TABLEOracle dispone de la orden
TRUNCATE TABLEque te permitirá eliminar los datos (filas) de una tabla sin eliminar su estructura.
Hemos dicho anteriormente. que para eliminar una tabla utilizaremos el comando
DROP TABLE.Sintaxis:
TRUNCATE TABLE NombreTabla [CASCADE];La opción
CASCADEse puede incluir para los casos en que alguna de las columnas sea clave ajena en otra tabla secundaria, lo que impediría su borrado. Al colocar esta opción Oracle trunca todas las tablas hijas que referencien a la tabla padre con una restricción de integridad referencial del tipoON DELETE CASCADE.Ejemplo:
Imaginemos que hemos creado la tabla USUARIOS y hemos insertado varios registros:
CREATE TABLE USUARIOS (
Login VARCHAR(15) PRIMARY KEY,
Password VARCHAR(8) NOT NULL,
FechaIngreso DATE DEFAULT SYSDATE
);
INSERT INTO USUARIOS(Login, Password) VALUES('Usuario1', '12345678');
INSERT INTO USUARIOS(Login, Password) VALUES('Usuario2', '23456789');
INSERT INTO USUARIOS(Login, Password) VALUES('Usuario3', '34567890');Si ejecutamos, posteriormente, el comando
TRUNCATE TABLE USUARIOS;Borraríamos el contenido. Por eso la respuesta a un
SELECT * FROM USUARIOS;devolvería
no data foundPero, en cambio, la estructura de la tabla USUARIOS aparecería si hacemos una consulta como
DESC USUARIOS;Ejercicio:
Imagina que, en la base de datos, tenemos la siguiente tabla, con su respectivos datos:
CREATE TABLE MODULOS (
CODIGO NUMBER PRIMARY KEY,
NOMBRE VARCHAR2 (100),
DEPARTAMENTO CHAR(3)
);
INSERT INTO MODULOS VALUES (1, 'INFORMATICA', 'INF');
INSERT INTO MODULOS VALUES (2, 'MATEMATICAS', 'MAT');
Borra los registros de la tabla, sin borrar su estructura.
Tipo
Solución
TRUNCATE TABLE MODULOS;
Prueba
SELECT COLUMN_NAME FROM USER_TAB_COLS
UNION
SELECT NOMBRE FROM MODULOS;
LibrerÃas (Onfly databases)
CREATE TABLE MODULOS (
CODIGO NUMBER PRIMARY KEY,
NOMBRE VARCHAR2 (100),
DEPARTAMENTO CHAR(3)
);
INSERT INTO MODULOS VALUES (1, 'INFORMATICA', 'INF');
INSERT INTO MODULOS VALUES (2, 'MATEMATICAS', 'MAT');

