Convierte arrays JSON a sentencias INSERT para MySQL, PostgreSQL y SQLite
Ejemplo rápido
También podrías necesitar
Convertir datos JSON a sentencias SQL INSERT es una tarea frecuente en migraciones, seeders, fixtures de testing y carga inicial de datos en bases de datos relacionales. En lugar de escribir manualmente cada sentencia o usar scripts Python/Node, esta herramienta lo hace en segundos. Acepta cualquier array JSON válido (objetos con propiedades homogéneas o heterogéneas) y genera sentencias INSERT optimizadas para el dialecto SQL elegido. La diferencia entre dialectos está en las comillas: MySQL usa backticks (`) para identifiers, PostgreSQL y SQLite usan comillas dobles ("), SQL Server usa corchetes ([column]). Los valores string siempre van entre comillas simples con escape correcto de apostrofes. Los valores null se generan como NULL. Los booleanos se convierten según el dialecto (TRUE/FALSE en PostgreSQL, 1/0 en SQLite). El modo multi-row genera una única sentencia INSERT con múltiples filas VALUES, más eficiente que múltiples INSERTs individuales y soportado en todos los dialectos modernos. Todo el procesamiento ocurre en tu navegador — los datos nunca salen de tu dispositivo.
¿Qué estructura de JSON acepta la herramienta?
La herramienta acepta arrays de objetos JSON: [{...}, {...}, ...]. Cada objeto del array se convierte en una fila de la tabla. Las claves del primer objeto definen las columnas — objetos posteriores con claves adicionales las ignorarán; con claves faltantes generarán NULL para esa columna. No soporta JSON anidado profundo (objetos dentro de objetos): los valores de tipo objeto se serializan como string JSON.
¿Cuál es la diferencia entre multi-row y sentencias individuales?
Las sentencias individuales generan una INSERT por cada objeto del array, lo que facilita identificar cuál fila falla si hay un error. El modo multi-row genera una única INSERT con múltiples grupos de VALUES: INSERT INTO tabla (cols) VALUES (row1), (row2), ...; Esto es entre 3x y 10x más rápido al cargar grandes cantidades de datos porque reduce el overhead de red y transacciones. Para seeders de desarrollo o migraciones de datos masivos, siempre preferí multi-row.
¿Cómo se manejan los valores null, booleanos y fechas?
Null genera NULL en SQL (sin comillas). Los booleanos true/false generan TRUE/FALSE en PostgreSQL, 1/0 en MySQL y SQLite (que no tienen tipo boolean nativo), y 1/0 en SQL Server (BIT). Las fechas en formato ISO 8601 (2024-01-15T10:30:00Z) se tratan como strings — se insertan entre comillas simples. Para fechas, asegurate de que el formato sea compatible con el tipo de columna de destino (DATE, DATETIME, TIMESTAMP).
¿Por qué SQL Server usa corchetes y no comillas?
SQL Server (T-SQL) usa corchetes [ColumnName] como delimitadores de identifiers por defecto, aunque también soporta comillas dobles si se habilita QUOTED_IDENTIFIER ON. Los corchetes son la convención estándar en T-SQL y son necesarios cuando el nombre de una columna coincide con una palabra reservada (name, date, value, etc.) o contiene espacios. MySQL usa backticks (`) por razones históricas — es su símbolo de quoting de identifiers desde el inicio.
¿Puedo usar el output directamente en producción?
Para datos de prueba o seeders de desarrollo, sí. Para cargar datos reales en producción, revisá el output antes de ejecutarlo: verificá que los tipos de datos coincidan con tu schema, que las fechas estén en el formato correcto, que no haya columnas con restricciones NOT NULL faltantes, y que los valores de texto no contengan comillas simples sin escapar en casos edge. La herramienta escapa apostrofes (' → '') pero el contexto de tu schema puede requerir validaciones adicionales.