Usar SQL para generar SQL

El principio para la creación de cadenas SQL a partir de SQL consiste, básicamente, en recorrer la metadata (information schema) de una base de datos y armar strings sql a partir de la concatenación strings constantes y del nombre de los objetos (nombre de tablas, nombre de campos, nombre de constraints, etc.) de la base de datos.

Las consultas SQL utilizadas pueden variar en cuanto a los nombres de los campos, tablas involucradas u objetos del sistema de acuerdo al sistema de gestión de base de datos utilizado, pero el funcionamiento es el mismo. El único esfuerzo extra a realizar será investigar el diccionario de datos de cada DBMS.

Los ejemplos mencionados en el artículo original, correspoden a consultas de Oracle, en nuestro caso, veremos ejemplos similares para una base de datos MySQL:


[MYSQL]

— Cantidad de filas por tablas
USE information_schema;
SELECT CONCAT(‘SELECT count(*) FROM ‘ , table_schema , ‘.’ , table_name , ‘;’) FROM tables;

— Quitar las foreign key de las tablas
USE information_schema;
SELECT CONCAT(‘ALTER TABLE ‘ , table_name , ‘ DROP FOREIGN KEY ‘ , constraint_name , ‘;’) FROM table_constraints WHERE constraint_type = ‘FOREIGN KEY’;

— Generar un scripts de inserts de una tabla
SELECT CONCAT(‘INSERT INTO usuarios (id,nombre,apellidos) VALUES ( ‘ , id , ‘,”‘ , nombre , ‘”,”‘ , apellidos , ‘”);’) FROM usuarios;

[/MYSQL]

Vía: Micro Codes

Tags: , ,


Leave a Reply

Your email address will not be published. Required fields are marked *