[ Foro de SQL (y MySQL) ]

error en sql

04-Apr-2019 20:28
Invitado (superman)
1 Respuestas

Tengo esto :

TABLAS


create database taller;
use taller;

create table cliente
(
dni varchar (9)not null,
nombre varchar (50)not null,
apellido varchar (50)not null,
direccion varchar (50)not null,
ciudad varchar (50)not null,
telefono int not null,
primary key (dni)
);

create table especificacion
(
codigo int (11) not null auto_increment,
marca varchar (50)not null,
modelo varchar (50)not null,
primary key (codigo)
);

create table coche
(
matricula varchar (8),
codigo_esp int (11) not null,
color varchar(20)not null ,
cliente varchar (9) not null,
primary key (matricula),
foreign key (codigo_esp) references especificacion(codigo),
foreign key (cliente) references cliente(dni)
);

create table revision
(codigo int not null auto_increment,
cambio_filtro tinyint(1) not null,
cambio_aceite tinyint(1)not null,
cambio_frenos tinyint(1)not null,
otros varchar(50),
fecha date not null,
matricula varchar(8) not null,
primary key (codigo),
foreign key (matricula) references coche(matricula)
);



DATOS A INTRODUCIR


insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("25378239q","antonio","lopez alegria","c/pez 190","madrid",645213698);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("31884162k","jesus","rodriguez lopez","c/madrid 20","madrid",697410023);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("43465283t","carolina","santos vega","avnda sol,25","alcorcon",641200366);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("47143647h","maria","alvarez sol","calle madrid,21","leganes",614875231);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("64317545t","hector","ramos ordoñez","camino de carretas,1","madrid",620569874);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("71506323j","martin","lopez marin","calle pez,193","madrid",654123000);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("72284876q","aurora","sanchez rodruiguez","calle alegria,78","leganes",601785411);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("74356310r","sandra","santos perez","calle perro,121","getafe",698740521);
insert into cliente (dni,nombre,apellido,direccion,ciudad,telefono) values ("99720171z","juan","martinez barragan","calle coche,63","madrid",632145112);
INSERT INTO especificacion (marca, modelo) VALUES ('SEAT', 'ARONA');
INSERT INTO especificacion (marca, modelo) VALUES ('SEAT', 'LEÓN');
INSERT INTO especificacion (marca, modelo) VALUES ('SEAT', 'IBIZA');
INSERT INTO especificacion (marca, modelo) VALUES ('SEAT', 'TOLEDO');
INSERT INTO especificacion (marca, modelo) VALUES ('SEAT', 'TARRACO');
INSERT INTO especificacion (marca, modelo) VALUES ('SEAT', 'PANDA');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A1');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A2');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A3');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A4');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A5');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A6');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'Q7');
INSERT INTO especificacion (marca, modelo) VALUES ('AUDI', 'A8');
INSERT INTO especificacion (marca, modelo) VALUES ('VOLKSWAGEN', 'POLO');
INSERT INTO especificacion (marca, modelo) VALUES ('VOLKSWAGEN', 'GOLF');
INSERT INTO especificacion (marca, modelo) VALUES ('VOLKSWAGEN', 'TOURAN');
INSERT INTO especificacion (marca, modelo) VALUES ('VOLKSWAGEN', 'TIGUAN');
INSERT INTO especificacion (marca, modelo) VALUES ('VOLKSWAGEN', 'SIROCO');
INSERT INTO especificacion (marca, modelo) VALUES ('VOLKSWAGEN', 'TOUAREG');
INSERT INTO especificacion (marca, modelo) VALUES ('CITROEN', 'PICASSO');
INSERT INTO especificacion (marca, modelo) VALUES ('CITROEN', 'SAXO');
INSERT INTO especificacion (marca, modelo) VALUES ('CITROEN', 'C3');
INSERT INTO especificacion (marca, modelo) VALUES ('CITROEN', 'C4');
INSERT INTO especificacion (marca, modelo) VALUES ('CITROEN', 'BERLINGO');

insert into coche (matricula,codigo_esp,color,cliente) values ("1098hbd",2,"negro","25378239q");
insert into coche (matricula,codigo_esp,color,cliente) values ("341ccj",13,"negro","64317545t");
insert into coche (matricula,codigo_esp,color,cliente) values ("4716ccd",3,"negro","74356310r");
insert into coche (matricula,codigo_esp,color,cliente) values ("6601ggk",10,"blanco","47143647h");
insert into coche (matricula,codigo_esp,color,cliente) values ("7867khh",10,"rojo","72284876q");
insert into coche (matricula,codigo_esp,color,cliente) values ("8535cjj",5,"azul claro","99720171z");
insert into coche (matricula,codigo_esp,color,cliente) values ("8660gkf",2,"rojo","71506323j");
insert into coche (matricula,codigo_esp,color,cliente) values ("9084kfb",11,"negro","31884162k");
insert into coche (matricula,codigo_esp,color,cliente) values ("9484gdh",2,"gris","43645283t");
insert into coche (matricula,codigo_esp,color,cliente) values ("9648gcj",1,"azul oscuro","64317545t");

INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, true, false, null, '2019-02-09', '1098HBD');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, false, false, 'Correa de distribución', '2019-02-19', '4716CCD');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (false, true, false, 'Radiador', '2019-02-09', '8660GKF');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, false, false, null, '2019-02-15', '9484GDH');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, true, true, 'Correa de distribución', '2019-02-15', '9648GCJ');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (false, true, false, null, '2019-02-22', '8535CJJ');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, true, true, 'Bomba de agua', '2019-03-09', '7867KHH');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, true, true, 'Bomba de agua', '2019-02-20', '9084KFB');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (true, true, false, 'Filtro de partículas', '2019-02-19', '6601GGK');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (false, false, true, 'Filtro del aire', '2019-03-17', '6601GGK');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (false, true, true, null, '2019-03-15', '4716CCD');
INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula) 
VALUES (false, false, false, 'Limpiaparabrisas', '2019-03-17', '4716CCD');



Solo no me deja meter estos dos(los insert into en mayusculas son que te vienen ya dados y tienes que hacer las tablas en base a ellos) :

insert into coche (matricula,codigo_esp,color,cliente) values ("9484gdh",2,"gris","43645283t");

INSERT INTO revision (cambio_filtro, cambio_aceite, cambio_frenos, otros, fecha, matricula)
VALUES (true, false, false, null, '2019-02-15', '9484GDH');


alguno me puede decir que esta mal, se que es algo de la clave foranea


16-Apr-2019 14:30
Nacho Cabanes (+41)

Cuando existe una restricción de calve ajena, debes introducir en primer lugar en la otra tabla los datos con los que va a enlazar cada nuevo dato: no puedes hacer

insert into coche (matricula,codigo_esp,color,cliente) values ("9484gdh",2,"gris","43645283t");

si no existe un cliente con código (dni) 43645283t






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)