¿Cómo insertar datos masivos en una base de datos usando Mockaroo?
Cuando trabajamos con bases de datos, es crucial contar con datos suficientes para realizar consultas avanzadas y probar nuestras aplicaciones. Aquí entra en juego Mokaroo, una herramienta poderosa que nos permite generar datos masivos automáticamente. En este contexto, te explicaremos cómo usarla para poblar diferentes tablas de manera eficiente.
¿Qué es Mockaroo y cómo funciona?
Mockaroo es una herramienta basada en la web que genera datos falsos de manera rápida y sencilla. Nos permite especificar el tipo de datos que queremos y genera un archivo con la información deseada. Así evitamos el tedioso proceso de inventar manualmente cada dato.
Para empezar, debemos indicar a Mockaroo qué tipo de datos queremos insertar en nuestras tablas. Como por ejemplo, en la tabla de estaciones podría ser:
Nombre de la estación: Podemos usar un generador que proporcione nombres comunes.
Dirección: Opciones como "Street Address" nos ofrecen direcciones completas y aleatorias.
Podemos crear un archivo que contenga el script de inserción para estas columnas y personalizarlo para que refleje la estructura de nuestra base de datos.
-- Ejemplo de script de inserción generado por MockarooINSERTINTO estacion (nombre, direccion)VALUES('Word','Ruta 123');
¿Cómo trabajar con tablas relacionadas?
Para tablas que dependen de otras, como "trayecto" o "viajes", necesitamos un enfoque distinto, pues no podemos generar datos aleatorios sin continuidad. Es aquí donde definimos las relaciones entre tablas.
Trayecto: Esta tabla tiene relaciones con "estacion" y "tren". Necesitamos asegurar que las IDs insertadas ya existan en aquellas tablas.
Mockaroo nos permite generar ID aleatorios en un rango específico para mantener coherencia:
-- Generación de valores en un rangoSELECT id FROM estacion WHERE id BETWEEN1AND102;
Así, al obtener los últimos valores insertados, podemos definir el rango para los IDs relacionados.
¿Cómo asegurar el formato de datos correcto?
Otra consideración importante es el formato de datos, especialmente con fechas. Es vital que el formato coincida con el utilizado en nuestra base de datos.
Para asegurarnos, podemos realizar una consulta para comprobar el formato actual de la fecha en la base de datos y ajustar los datos generados por Mockaroo en consecuencia:
SELECTCURRENT_DATE;-- Verifica el formato de fecha actual
Sugerencias para avanzar en tus proyectos
Explora otras opciones de Mockaroo: Además de nombres y direcciones, puedes explorar opciones como nombres de negocios, productos, correos electrónicos, entre otros.
Valida siempre las relaciones: Antes de insertar datos en tablas relacionadas, valida que los IDs referidos existan.
Testea con diferentes volúmenes de datos: Inicia con menos datos y aumenta progresivamente para evaluar la performance de tu base de datos.
Integra diferentes tipos de datos: No solo confíes en datos de texto, explora la inserción de datos numéricos, booleanos, o de otros tipos.
Por último, te animo a que pruebes todo lo aprendido insertando datos en la tabla de viajes, que depende de las tablas de pasajeros y trayectos. ¡Comparte tus experiencias en los comentarios y sigue aprendiendo!
No conocía Mockaroo, mis días de estar pensando qué datos insertar para poder ir probando y practicando se han acabado.
Quisiera mencionarles, que en la página también se puede insertar código SQL, tocando el botón “Fx” al final del campo. Por ejemplo, en el campo del id de tren, toqué “Fx” y puse lo siguiente:
code("(SELECT id FROM tren ORDER BY RANDOM() LIMIT 1)")
Este query lo que hace es buscar un id aleatorio de la tabla tren.
Finalmente, una de las líneas que me generó la página es la siguiente:
insert into trayecto (nombre, trenid, estacionid) values ('Court', (SELECT id FROM tren ORDER BY RANDOM() LIMIT 1), (SELECT id FROM estacion ORDER BY RANDOM() LIMIT 1));
Espero haberme explicado bien, saludos.
Muy buen aporte así ya no depende de rangos de id que puedas llegar a tener, sino de todos los id, asi hasta podria se aplicable a un id con Hash.
fenomenal aporte, así vamos generando más información para nuestra base de datos.
jajaja se acabaron los tiempo de buscar datasets de prueba, toda mi vida estuve en modo difícil, genial herramienta!
Les comparto como lo solucioné sin contar que números de id estaban disponibles manualmente, seleccione tipo sql expresion obteniendo un id aleatorio del cada tabla foránea.
(SELECT id FROM pasajero ORDER BY RANDOM() LIMIT 1)(SELECT id FROM trayecto ORDER BY RANDOM() LIMIT 1)
Configuración
Datos Generados
Muchas gracias por tu aporte.
Algo que no me termina de gustar es que esto no parece tener utilidad práctica, es decir que en un entorno real si tengo muchos datos de diferentes tablas y debo hacerlos coincidir, yo no puedo simplemente ponerle un trayecto aleatorio a un pasajero aleatorio 😂, sumado a que los id's salen repetidos, seguramente debe haber alguna otra forma de hacerlo con programación en SQL o con Scripts externos.
CristianHdz90 yo también note ese problema, una solución que se me ocurre para comenzar la db con datos aleatorios y en otra irlos leyendo pero asignando sus correctos ID's una buena practica es usar el GUID el cual permite a un sistema ser interoperable pues a pesar de haber varios desarrollos puedes garantizar que siempre existiran IDs distintos.
Otra solución es guardar los datos en un CSV e irlos leyendo desde el backend asignando los GUIDs necesarios para hacer las relaciones, dependiendo de las relaciones que haya puedes configurarlo para ejecutarse si hay datos o no existentes.
Excelente esta herramienta, Mockaroo. Solo hay algo que me vuela la cabeza y es que al insertar fechas aleatorias en viaje, un pasajero puede viajar al pasado iniciando, por ejemplo, en 2017 y finalizando en 2012. Alguien si pudo dejar las fechas un poco mas coherentes que lo que tengo?
Tengo la misma duda jaja, lo que hice fue condicionar que el final iniciara después del ultimo dato del inicio, pero si hay alguna forma para que mockaroo lo ejecute, quedo pendiente de la solución jaja
Hola, yo usé esta fórmula para evitar ese problema
Estos fueron mis resultados
Para los fieles amantes de nuestra sagrada consola, les recuerdo que se puede agregar la información a la base de datos leyendo el script generado, con el siguiente comando:
sudo psql -U usuario -d base_datos < archivo.sql
Nota: El comando anterior funciona en linux, no tengo idea de como sea en Windows.
Si alguien lo sabe, por favor comentelo!
Me ganaste el aporte, algo me decia que ya se le habia ocurrido a alguien que lo esta haciendo tambien desde la terminal. :)
Compañero para windows se realiza con el comando SQLCMD y su composicion seria de esta forma :
sqlcmd -S <ComputerName><InstanceName>
-U <username> -P <password> -d <DatabaseName> - i<MyScript.sql>
Eje: SQLCMD - S TestSQLServer\ SQLEXPRESS - U sa - P sasa - d AdventureWorks2018 - i "d:\document\sql document\script.sql"
si alguien quiere importar al archivo desde terminal psql es:
\i C:/Users/Yo/Desktop/pasajeros.sql
básicamente solo necesitas \i y el el path donde se encuentra tu archivo sql.
Mil gracias!
Los "pequeños errores" que había estado cometiendo antes y no corregí ya no me permitieron pasar de aquí y ahora voy a empezar toda la base de datos de cero 😂
El flojo trabaja doble :'v
Wow.
En verdad este curso me parece super completo.
Los cursos de Fundamentos de Base de datos y PostgreSQL los de Java con Annai me han parecido de los mejores sin olvidar los de Leonidas.
La herramienta para llenar campos en las bases es de lo mejor.
Estos son los datos que agregué a mi tabla de viajes. :D
insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(172,14,'2020-01-30 17:59:40','2019-04-11 22:14:57');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(147,79,'2019-12-29 04:11:23','2020-03-03 00:36:00');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(149,59,'2019-11-15 02:30:13','2019-06-04 01:21:24');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(178,41,'2020-03-19 13:44:11','2019-10-12 23:43:05');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(166,22,'2020-03-15 10:04:35','2019-10-28 07:41:50');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(170,86,'2019-05-05 14:35:26','2020-02-26 13:26:38');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(107,111,'2019-07-14 20:59:19','2019-12-17 06:23:23');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(120,46,'2019-05-21 10:32:27','2019-12-12 16:44:29');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(106,56,'2019-07-09 06:17:50','2019-12-02 22:02:33');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(190,44,'2020-01-16 09:22:52','2019-09-11 00:47:46');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(109,28,'2020-01-18 16:17:44','2020-01-21 06:00:20');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(132,56,'2019-07-03 18:49:25','2020-02-10 06:51:47');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(156,61,'2019-11-02 01:52:04','2020-03-24 02:12:27');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(193,70,'2019-08-15 08:55:35','2019-06-25 16:16:08');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(204,69,'2019-11-08 02:32:39','2019-10-25 22:45:26');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(120,94,'2020-01-08 09:00:48','2019-10-23 19:38:02');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(125,48,'2019-11-02 01:54:44','2019-05-23 21:35:26');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(179,97,'2019-12-27 10:12:45','2019-05-15 11:44:49');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(179,37,'2020-01-31 01:34:42','2019-12-29 06:47:14');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(125,92,'2019-12-07 17:13:54','2019-07-19 01:52:34');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(202,36,'2019-12-24 04:07:18','2019-09-06 06:49:22');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(185,111,'2019-05-13 08:46:54','2019-10-19 06:39:34');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(145,13,'2019-10-15 15:20:28','2020-02-28 10:49:45');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(144,75,'2019-12-30 21:10:50','2019-08-13 09:14:56');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(124,104,'2019-06-10 19:02:49','2019-12-18 00:13:22');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(128,67,'2019-12-06 23:22:27','2020-02-03 12:09:45');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(161,44,'2019-04-11 23:37:57','2019-11-30 10:12:23');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(177,96,'2019-09-06 07:02:12','2019-09-26 11:47:01');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(155,81,'2020-03-10 14:26:57','2019-12-18 18:14:26');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(139,46,'2019-05-12 00:44:47','2019-08-10 23:20:08');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(182,111,'2019-05-16 00:48:48','2019-05-01 10:51:55');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(202,60,'2019-12-11 20:35:04','2019-05-26 10:02:25');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(120,55,'2019-10-28 14:29:41','2019-06-26 12:01:23');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(200,112,'2019-11-17 16:50:05','2020-04-06 01:59:04');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(157,73,'2019-08-17 18:37:48','2019-05-28 13:41:44');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(150,93,'2019-08-27 18:47:21','2019-07-02 18:39:40');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(172,100,'2020-01-16 09:31:14','2019-10-30 19:12:14');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(158,33,'2020-01-14 18:31:59','2019-09-05 23:49:33');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(185,98,'2019-06-28 08:20:24','2019-10-06 19:31:41');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(137,31,'2019-11-04 05:38:28','2019-07-14 06:29:58');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(145,95,'2019-05-04 11:40:42','2020-01-19 12:47:27');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(182,17,'2019-07-07 12:15:48','2020-02-16 14:40:04');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(136,95,'2019-11-28 01:20:03','2020-03-06 09:53:50');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(203,81,'2019-11-28 17:00:27','2019-08-14 10:31:22');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(157,64,'2019-10-11 10:31:44','2019-06-19 20:10:43');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(123,20,'2019-06-08 09:57:29','2019-10-25 16:41:28');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(111,83,'2019-09-25 13:11:00','2020-03-03 20:09:51');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(166,77,'2019-12-16 21:24:47','2019-05-04 11:35:22');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(135,47,'2019-12-30 23:45:08','2019-04-22 11:04:46');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(135,86,'2019-08-20 23:50:45','2019-09-29 23:55:39');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(106,19,'2019-05-16 01:34:15','2019-12-28 15:20:19');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(180,70,'2019-05-10 17:52:19','2020-03-20 03:58:14');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(191,99,'2019-07-02 23:54:19','2019-08-19 22:15:19');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(188,62,'2019-07-02 01:24:22','2019-09-24 08:16:37');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(191,63,'2019-10-22 22:09:21','2019-04-12 05:56:38');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(109,77,'2019-12-20 15:08:43','2019-07-28 04:29:49');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(178,86,'2019-11-11 09:16:02','2020-02-20 16:39:46');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(157,85,'2019-09-11 18:34:38','2019-07-14 10:42:09');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(163,109,'2020-01-07 17:28:52','2019-07-31 08:19:59');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(126,56,'2020-02-02 10:43:14','2020-03-01 06:59:24');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(185,61,'2019-04-23 23:20:05','2020-03-16 13:00:34');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(160,69,'2019-10-26 03:44:37','2019-10-10 15:22:47');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(113,31,'2019-07-30 14:34:47','2019-08-24 07:09:38');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(151,91,'2019-09-20 22:25:13','2019-06-15 08:58:39');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(122,22,'2019-11-27 04:36:47','2019-11-05 18:34:05');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(131,97,'2019-05-24 15:37:28','2019-07-01 07:08:15');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(187,74,'2019-12-29 03:29:28','2019-10-21 05:04:35');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(168,19,'2019-06-04 18:58:56','2019-06-07 19:46:28');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(197,97,'2019-10-18 06:26:45','2019-06-24 14:22:02');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(199,27,'2019-12-01 03:29:54','2019-04-14 03:27:45');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(108,95,'2020-03-16 06:29:39','2019-11-04 08:30:36');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(108,81,'2019-08-15 10:12:39','2019-05-07 20:23:42');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(141,35,'2019-04-23 03:45:14','2019-08-26 11:53:32');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(184,105,'2019-05-17 18:23:06','2019-09-21 05:02:19');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(132,100,'2019-05-08 16:35:07','2019-05-15 12:29:22');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(119,28,'2019-07-14 16:38:56','2019-09-19 14:59:42');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(112,72,'2019-06-13 10:53:11','2020-03-05 06:39:00');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(162,113,'2019-10-20 09:07:25','2019-09-30 21:14:07');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(127,90,'2020-02-10 16:52:45','2019-06-02 10:42:49');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(126,59,'2019-11-15 03:29:38','2019-10-13 19:38:09');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(106,52,'2019-10-12 16:56:06','2019-10-21 08:05:34');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(202,78,'2019-08-28 04:17:06','2019-10-24 00:20:32');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(201,45,'2020-02-01 13:36:47','2020-02-12 08:07:42');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(156,73,'2020-04-04 20:53:06','2020-01-29 04:44:49');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(127,64,'2020-01-25 14:40:14','2019-10-12 20:37:03');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(178,97,'2019-11-03 13:10:56','2020-02-10 21:10:46');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(124,40,'2019-10-04 21:52:50','2019-10-19 21:06:44');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(180,91,'2019-07-13 19:26:46','2019-04-23 13:49:47');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(151,64,'2020-01-23 13:17:27','2019-09-07 01:23:56');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(133,89,'2019-05-28 12:56:51','2019-11-05 08:03:42');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(176,86,'2019-04-20 06:24:36','2019-11-02 22:13:37');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(175,87,'2019-08-13 00:21:46','2019-07-10 15:20:14');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(172,29,'2020-01-08 04:41:08','2019-08-15 18:53:38');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(179,42,'2020-02-01 00:05:23','2019-10-07 20:31:40');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(194,67,'2019-09-28 21:51:15','2019-12-22 02:50:20');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(106,78,'2019-04-14 21:23:06','2020-03-21 15:57:42');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(177,86,'2019-11-07 13:17:43','2019-12-31 19:08:20');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(184,54,'2019-05-10 07:13:21','2019-11-29 23:52:39');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(165,80,'2019-10-10 11:40:32','2019-08-13 10:53:51');insert into viajes(id_pasajero, id_trayecto, inicio, fin)values(132,66,'2019-05-07 10:56:20','2019-09-27 11:38:05');
, por lo tanto implemente este query para adecuar los registros.
SELECT`id`, inicio,`final`,EXTRACT(DAYSFROM viajes.final- viajes.inicio)AS dias_trayecto
FROM viajes
WHEREEXTRACT(DAYSFROM viajes.final- viajes.inicio)<0;
Este primero para identificar las tuplas que viajan al pasado (no pude con el nombre de la consulta “dias_trayecto” en el where no sé por qué)
Y este para modificar la fecha de finalización a la fecha actual.
Hola Oscar, yo usé esta formula para solucionar ese problema, espero te sirva.
Estos son los datos que obtuve
Dentro de la ventana de fórmula se puede ver la sintaxis de fórmulas de Mockaroo
Buen aporte ya no siempre vamos a tener la opcion de borrar y volver a empezar sino trabajar sobre lo existente, te adjunto querie corregido con la sintaxis correcta
Consulta de registros con fecha fin incorrecta
SELECT
id,
inicio,
fin,
EXTRACT(DAY FROM viaje.fin - viaje.inicio) AS dias_trayecto
FROM viaje
WHERE EXTRACT(DAY FROM viaje.fin - viaje.inicio) < 0;
Update de registros con fecha fin incorrecta
UPDATE viaje
SET fin=current_date
WHERE EXTRACT (DAY FROM viaje.fin - viaje.inicio)<0;
Para insertar los datos de la columna inicio y fin de la tabla viajes en modo fecha y hora debes seleccionar así:
Type------>Datetimeformat ------->SQL datetime
 y se debe seguir la secuencia de cada columna en el orden correspondiente. Parece lógico pero esos detalles hay que tenerlos en cuenta.
Gracias buen hombre, las comillas me hicieron falta para que me aceptara un varchar en trenes.
Para mantener fecha fin despues de fecha inicio
Buen dato!
Gracias!! me pasaba lo mismo pero con esto lo pude arreglar!
Buena tarde,
Estoy teniendo el siguiente mensaje de error al intentar la inserción en la tabla trayectos.
¡Hola! Ese error es porque estás insertando una llave foránea que no existe en otra tabla. Recuerda que las llaves foráneas sirven para conectar una tabla con otra, por este motivo, la llave foránea debe existir en la otra tabla que tengas, en este caso te dice que la llave foránea que estás tratando de insertar no existe en la tabla "estaciones".
Verifica que esa llave exista, y si no existe puedes crearla o puedes tratar de usar otra llave :D
Buenas tardes, te respondo un poco tarde pero para resolverlo, tuve que mirar en estacion los numeros que tenia (me refiero a las filas), antes de darle a mockaroo mira eso y le cambias el rango con respecto a lo que tengas. Asi me pasaba, y pues mirando opciones lo deduje y lo resolvi.
Hola Para los que le tiran un error como este:
ERROR: no existe la relación «estacion»
LINE1: insert into Estacion(Nombre,Direccion)values('Schuppe,S...
La solucion que encontre es poner Estacion (tabla), Nombre y DIreccion (columnas) entre comillas asi:
insert into "Estacion"("Nombre","Direccion")values('Schuppe, Shanahan and Lowe','21 Dovetail Trail');
Lo pueden agregar cuando ponen el nombre de las columnas y tabla en Mockaroo.
No se porque, supongo que son cosas del programa.
Saludos y nunca paren de aprender
Es posible hacerlo todo el cambio en un solo movimiento con visual studio code
1).-seleccionar un renglón para hacer el cambio
2).-click derecho
3).- en la opción de change all ocurr.... ejecutas la modificación en todos los renglores
En mi caso no funciono
No me funciono pero asi pueden avanzar
En mi caso lo corregi verificando los nombres de las tablas y columnas en pgadmin (tenian espacios al final del nombre y por eso no me lo reconocia)
Bueno, les cuento que para no que me salieran valores duplicados id coloque Row number y cambie el valor de la tabla que iniciaba en 3 por un 1 para que no me afectara el conteo.
Me aparece esto, alguien sabe cómo le podría dar solución?
Eso pasa debido a que se está tratando de añadir un nuevo row de datos con un ID ya existente en esa tabla. Recuerda que el ID lo hemos puesto como Pkey (primary Key) el cúal tiene que ser un valor único... solo debes cambiar el id de la inserción que estas haciendo para corregir ese error.
Me salto el mismo error... alquien de la comunidad o Platzi podría facilitar un ejemplo de solucion?
¿Como puedo borrar datos duplicados? Por error inserté dos veces los datos en la tabla estación.
Puedes borrar comparando por la columna que esta duplicada:
deletefrom tabla a using tabla b where a.serial< b.serial and a.columna= b.columna
A la misma tabla de damos dos alias uno a y el otro b, luego comparamos las columnas que son iguales pero borramos la que tenga menor valor en la columna serial. No necesariamente debe ser serial pero si debe ser una columna aparte para que la consulta sepa con cual columna se debe quedar y cuales borrar