Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

Duda proyecto final MySQL

Tengo un problema cuando quiero importar los datos para tb_facturas, me salta un error de la clave foranea DNI a que se debe esto? Este es el codigo que tengo, justo en la ultima consulta es donde ocurre el error

CREATE SCHEMA empresa2;

#Podemos hacer doble click sobre la lista de schemas, pero para asegurarnos utilizamos USE USE empresa2;

#Creamos la tabla clientes , CON NOT NULL A DNI PORQUE ES PRIMARY KEY CREATE TABLE tb_clientes( DNI VARCHAR(11) NOT NULL, NOMBRE VARCHAR(100) NULL, DIRECCION VARCHAR(150), BARRIO VARCHAR(50), CIUDAD VARCHAR(50), ESTADO VARCHAR(10), CP VARCHAR(10), FECHA_NACIMIENTO DATE, EDAD SMALLINT, SEXO VARCHAR(1), LIMITE_CREDITO FLOAT, VOLUMEN_COMPRA FLOAT, PRIMERA_COMPRA BIT, PRIMARY KEY(DNI));

#Seleccionamos la tabla para ver el contenido de la misma

SELECT * FROM tb_clientes;

Creamos las demas tablas

CREATE TABLE tb_vendedor( MATRICULA VARCHAR(50) NOT NULL, NOMBRE VARCHAR(100), BARRIO VARCHAR(100), COMISION FLOAT, FECHA_ADMISION DATE, VACACIONES BIT(1), PRIMARY KEY(MATRICULA));

CREATE TABLE tb_productos( CODIGO VARCHAR(10) NOT NULL, DESCRIPCION VARCHAR(100), SABOR VARCHAR(50), TAMANO VARCHAR(50), ENVASE VARCHAR(50), PRECIO FLOAT, PRIMARY KEY(CODIGO));

CREATE TABLE tb_facturas( NUMERO VARCHAR(5) NOT NULL, FECHA DATE, DNI VARCHAR(11) NOT NULL, MATRICULA VARCHAR(5) NOT NULL, IMPUESTO FLOAT, PRIMARY KEY(NUMERO), FOREIGN KEY(DNI) REFERENCES tb_clientes(DNI), FOREIGN KEY(MATRICULA) REFERENCES tb_vendedor(MATRICULA));

CREATE TABLE tb_items( NUMERO VARCHAR(5) NOT NULL, CODIGO VARCHAR(10) NOT NULL, CANTIDAD INT, PRECIO FLOAT, PRIMARY KEY(NUMERO,CODIGO), FOREIGN KEY(NUMERO) REFERENCES tb_facturas(NUMERO), FOREIGN KEY(CODIGO) REFERENCES tb_productos(CODIGO));

#Para importar el dataset CREATE DATABASE jugos_ventas; USE jugos_ventas;

SELECT * FROM empresa.tb_items;

#Importamos registros USE empresa;

INSERT INTO tb_clientes SELECT DNI, NOMBRE, DIRECCION_1 AS DIRECCION, BARRIO,CIUDAD,ESTADO,CP,FECHA_DE_NACIMIENTO AS FECHA_NACIMIENTO, EDAD,SEXO,LIMITE_DE_CREDITO AS LIMITE_CREDITO,VOLUMEN_DE_COMPRA AS VOLUMEN_COMPRA,PRIMERA_COMPRA FROM jugos_ventas.tabla_de_clientes;

INSERT INTO tb_vendedor SELECT MATRICULA,NOMBRE,BARRIO,PORCENTAJE_COMISION AS COMISION,FECHA_ADMISION,VACACIONES FROM jugos_ventas.tabla_de_vendedores;

INSERT INTO tb_productos SELECT CODIGO_DEL_PRODUCTO AS CODIGO, NOMBRE_DEL_PRODUCTO AS DESCRIPCION, SABOR,TAMANO,ENVASE,PRECIO_DE_LISTA AS PRECIO FROM jugos_ventas.tabla_de_productos;

INSERT INTO tb_facturas SELECT NUMERO, FECHA_VENTA AS FECHA,DNI, MATRICULA, IMPUESTO FROM jugos_ventas.facturas;

4 respuestas

Hola Leandro, espero que esté bien.

Como tú creaste el tópico como Offtopic no tengo cómo saber qué curso y clase estabas haciendo que te generó esa duda, ¿podrías informarme cuál sería?

Te pediré que también compartas tu código compelto para facilitar que la gente te ayude.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Thiago, es el proyecto final, de cursos de Data Science / Cursos de Base de Datos / Proyecto Final El codigo es todo eso, pero el dataset "jugos_ventas" se encuentra en el curso. Pero creo que ya encontré el error pasa que la tabla DNI de foranea no tiene valor en la tabla madre

ok Leandro, pero si el error persiste o si tienes otra pregunta estaremos aquí para ayudarte.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Si tengo una duda, como tengo datos foraneos de una tabla que no los encuentro en la otra tabla primaria , como haria una comparacion entre tablas, lo que quiero hacer es comparar la columna de una tabla y la misma columna pero en otra tabla para ver los valores diferentes que tienen asi arreglar el error ,asi agregar o borrar los datos tienen diferentes. Como realizo el codigo para hacer esa comparacion?