Ver Mensaje Individual
  #12 (permalink)  
Antiguo 10/03/2015, 21:08
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error en base datos con trigger: Operand should cotain 1 column(s)

Mira, tomé los scripts y los cargué en mi PC, y en realidad hay unos cuantos errores de proceso, más allá de los que pueda contener el TRIGGER.
- No estás respetando las dependencias de FK->PK, ñas tablas dependientes deben ser cargadas después de las base, cosa que no se está cumpliendo.
- En al menos una tabla no estás enviando los valores necesarios. Hay al menos una columna NOT NULL a la que no le envías datos.
- En algunos casos se están enviando cadenas de texto que exceden el tamaño de la columna.

Código MySQL:
Ver original
  1. INSERT INTO NACIONALIDADES(codigo,nacionalidad) VALUES  ('SPA','Espana'), ('ITA','italia'), ('GBR','inglaterra'), ('GER','alemania'), ('USA','eeuu'), ('JPN','japon'), ('COL','colombia'), ('CZE','República Checa'), ('RSM','República de San Marino'), ('FRA','francia'), ('AUS','australia'), ('SWI','suiza'), ('BEL','belgica'), ('MAL','malasia'), ('THA','thailandia'), ('FIN','finlandia'), ('POR','portugal'), ('NED','paises bajos'), ('RSA','sudafrica'), ('VEN','venezuela'), ('ARG','argentina'), ('QAT','qatar')
Error Code: 1406. Data too long for column 'nacionalidad' at row 8

Código MySQL:
Ver original
  1. INSERT INTO PILOTOS (dorsal,nombre,categoria,moto,escuderia,nacionalidad) VALUES (93,'Marc MARQUEZ','motogp',3,13,1), (46,'Valentino ROSSI','motogp',2,9,2), (99,'Jorge LORENZO','motogp',2,9,1), (26,'Dani PEDROSA','motogp',3,13,1), (44,'Pol ESPARGARO','motogp',3,49,1), (4,'Andrea DOVIZIOSO','motogp',1,5,2), (41,'Aleix ESPARGARO','motogp',14,32,1), (38,'Bradley SMITH','motogp',3,49,3), (6,'stefan BRADL','motogp',2,24,4), (4,'Andrea IANNONE','motogp',1,5,2), (19,'Alvaro BAUTISTA','motogp',3,50,1), (45,'Scott REDDING','motogp',3,38,3), (35,'Cal CRUTCHLOW','motogp',3,6,3), (7,'Hiroshi AOYAMA','motogp',34,56,6), (68,'Yonny HERNANDEZ','motogp',1,12,7), (69,'Nicky HAYDEN','motogp',3,4,5), (17,'Karel ABRAHAM','motogp',3,2,8), (8,'Hector BARBERA','motogp',1,1,1), (70,'Michele PIRRO','motogp',34,56,2), (9,'Danilo PETRUCCI','motogp',1,12,2), (23,'Broc PARKES','motogp',34,56,3), (11,'Sandro CORTESE','motogp',34,56,4), (5,'Colin EDWARDS','motogp',34,56,4), (70,'michael Laverty','motogp',34,56,4), (63,'Mike DI MEGLIO','motogp',34,56,4), (15,'Alex DE ANGELIS','moto2',34,56,4), (21,'Katsuyuki NAKASUGA','motogp',34,56,4), (12,'Thomas LUTHI','moto2',14,19,12), (53,'Esteve Rabat','moto2',14,20,1), (5,'Johann ZARCO','moto2',14,17,10), (39,'Luis SALOM','moto2',14,26,1), (19,'Xavier LEON','moto2',34,56,1), (77,'Dominique AEGERTER','moto2',14,22,12), (22,'Sam LOVES','moto2',34,56,3), (23,'Marcel Schrotter','moto2',16,32,4), (95,'Anthony wEST','moto2',21,28,11), (7,'Lorenzo Baldassarri','moto2',14,10,3), (81,'Jordi TORRES','moto2',34,56,1), (88,'Ricard CARDUS','moto2',32,16,1), (94,'jonas FOLGER','moto2',14,15,3), (30,'Takaaki NAKAGAMI','moto2',14,21,6), (98,'Louis ROSSI','moto2',16,31,10), (55,'Hafizh Syahrin','moto2',14,27,14), (70,'Robin Mulhauser','moto2',14,33,12), (18,'Nicolas TEROL','moto2',34,56,1), (14,'Ratthapark WILAIROT','moto2',34,56,4), (44,'Roberto ROLFO','moto2',34,56,1), (21,'Franco MORBIDELLI','moto2',14,22,3), (4,'Randy KRUMMENACHER','moto2',14,23,12), (20,'Florian MARINO','moto2',34,56,2), (8,'Gino REA','moto2',14,16,3), (97,'Roman RAMOS','moto2',34,56,2), (45,'Tetsuia NAGASHIMA','moto2',14,23,6), (25,'Azlan SHAH','moto2',14,21,14), (10,'Thitioonc VVAROKORN','moto2',34,56,4), (54,'Mattia Pasini','moto2',34,56,2), (90,'Lucas MAMAS','moto2',34,56,1), (80,'Julian SIMON','moto2',30,28,1), (49,'Axel PONS','moto2',14,15,1), (40,'lAavenck VIÑALES','moto2',34,56,1), (38,'Mika KALLIO','moto2',14,20,16), (3,'Simone CORSI','moto2',34,56,1), (15,'Alex DE ANGELIS','moto2',34,56,4), (8,'Jack MILLER','moto3',3,3,11), (32,'Isaac VIñALES','moto3',29,51,1), (12,'Alex MARqUEZ','moto3',14,20,1), (52,'Dannxy KENT','moto3',3,52,3), (42,'Alex RINS','moto3',14,26,1), (7,'Efren VAZOUEZ','moto3',3,52,1), (23,'Niccolò Antonelli','moto3',3,42,3), (44,'miguel OLIVEIRA','moto3',27,43,17), (41,'Brad BINDER','moto3',27,43,19), (98,'Karel HANIKA','moto3',27,43,8), (33,'Enea BASTIANINI','moto3',3,53,3), (10,'Alexis MASBOU','moto3',3,46,10), (84,'Jakub KORNFEIL','moto3',27,54,8), (5,'Romano FENATI','moto3',27,47,3), (53,'Juanfran GUEVARA','moto3',30,41,1), (21,'Francesco BAGNAIA','moto3',30,41,3), (17,'John MCPHEE','moto3',3,41,3), (18,'Andrea MIGNO','moto3',27,47,3), (83,'Zulfahmi KHAIRUDDIN','moto3',27,54,14), (13,'Jasper IWEMA','moto3',34,56,1), (19,'Alessandro TONuCCI','moto3',30,55,3), (43,'Luna GRONWALD','moto3',34,56,3), (38,'Hafla A7_MI','moto3',34,56,3), (4,'Gabriel RAMOS','moto3',34,56,1), (3,'Matteo FERRARI','moto3',30,45,3), (55,'Andrea LOCATELLI','moto3',3,53,3), (6,'Maria herrera','moto3',29,51,1), (14,'Albert ARENAS','moto3',34,56,1), (31,'Niklas AJO','moto3',27,35,16), (99,'Jorge NAVARRO','moto3',3,38,1), (9,'Scott DEROUE','moto3',34,56,3), (95,'Jules DANILO','moto3',3,42,10), (91,'Gabriel RODRIGO','moto3',27,35,21), (85,'Philipp Oettl','moto3',27,19,4), (11,'livio lol','moto3',34,56,1), (61,'Arthur SISSIS','moto3',34,56,1), (57,'ERIC GRANADO','moto3',34,56,1)
Error Code: 1364. Field 'puntos' doesn't have a default value
Código MySQL:
Ver original
  1. INSERT INTO CIRCUITOS(nombre,nacionalidad) VALUES  ('Losail Circuit',22), ('Circuit Of The Americas',5), ('Autódromo Termas de Río Hondo',21), ('Jerez',1), ('Le Mans',10), ('Mugello',2), ('Circuit de Barcelona-Cataluny',1), ('Assen',18), ('Sachsenring',4), ('Indianapolis Motor Speedway',5), ('Brno',8), ('Donington Park',9), ('Misano',2), ('MotorLand Aragón',1), ('Motegi',6), ('Phillip Island',11), ('Sepang Circuit',14), ('Comunitat Valenciana',1)
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`motoristas`.`circuitos`, CONSTRAINT `FK1nacionalidad` FOREIGN KEY (`nacionalidad`) REFERENCES `nacionalidades` (`idnacionalidad`) ON DELETE NO ACTION ON UPDATE CASCADE)
Código MySQL:
Ver original
  1. INSERT INTO GRANDESPREMIOS (nombrecompleto,nombrereducido,codigogp,circuito,polesmgp,polesm2,polesm3) VALUES  ('commercial bank grand prix of Qatar','Qatar','QAT',1,1,27,60), ('RED BULL GRAND PRIX OF THE AMERICAS','Las Américas','AME',2,1,58,60), ('G.P. Red Bull de la República Argentina','Argentina','ARG',3,1,27,73), ('Gran Premio bwin de España','España','SPA',4,1,59,73), ('Monster Energy Grand Prix de France','Francia','FRA',5,1,59,60), ('Gran Premio dItalia TIM','Italia','ITA',6,1,27,73), ('GP monster Energy de Catalunya','Cataluña','CAT',7,1,27,62), ('Iveco Daily TT Assen','Países Bajos ','NED',8,1,34,62), ('eni Motorrad Gran Prix Deutschland','Alemania','GER',9,1,31,60), ('Red Bull Indianápolis Grand Prix','Indianápolis','INP',10,1,59,65), ('bwin Grand Prix teské Republiky','República Checa','CZE',11,4,27,71), ('HERTZ BRITISH GRAND PRIX','Gran Bretanya','CZE',12,1,27,64), ('GP TIM DI SAN MARINO E DELLA RIVIERA DI RIMINI','Republica de San Marino','RSM',13,2,27,64), ('Gran Premio Movistar de Aragón','Aragón','ARA',14,3,58,73), ('Motul Grand Prix of tapan','Japón','JPN',15,3,26,62), ('Tissot Australian Grand Prix','Australia','AUS',16,2,58,60), ('Shell Advance Malasyan Motorcycle GP','Malasia','MAL',17,1,58,65), ('GP GENERALI DE LA COMUNITAT VALENCIANA','Valencia','SPA',18,1,26,60)
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`motoristas`.`grandespremios`, CONSTRAINT `FK1premiocircuito` FOREIGN KEY (`circuito`) REFERENCES `circuitos` (`idcircuito`) ON DELETE NO ACTION ON UPDATE CASCADE)

Código MySQL:
Ver original
  1. INSERT INTO RESULTADOS (premio,piloto,posicion,tiempo) VALUES  (1,1,1,'42.40.561'), (1,2,2,'+0.259'), (1,4,3,'+3.370'), (1,7,4,'+11.623'), (1,10,5,'+12.159'), ...
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`motoristas`.`resultados`, CONSTRAINT `FK1piloto` FOREIGN KEY (`piloto`) REFERENCES `pilotos` (`idpiloto`) ON DELETE NO ACTION ON UPDATE CASCADE)

Código MySQL:
Ver original
  1. INSERT INTO RESULTADOS (premio,piloto,posicion,tiempo) VALUES  (1,29,1,''), (1,62,2,''), (1,28,3,''), (1,61,4,''), (1,63,5,''), (1,34,6,''), (1,22,7,''), (1,38,8,''), ...
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`motoristas`.`resultados`, CONSTRAINT `FK1piloto` FOREIGN KEY (`piloto`) REFERENCES `pilotos` (`idpiloto`) ON DELETE NO ACTION ON UPDATE CASCADE)

Código MySQL:
Ver original
  1. INSERT INTO RESULTADOS (premio,piloto,posicion,tiempo) VALUES  (1,64,1,''), (1,66,2,''), (1,69,3,''), (1,71,4,''), (1,68,5,''), (1,76,6,''), (1,75,7,''), (1,65,8,''), ...
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`motoristas`.`resultados`, CONSTRAINT `FK1piloto` FOREIGN KEY (`piloto`) REFERENCES `pilotos` (`idpiloto`) ON DELETE NO ACTION ON UPDATE CASCADE)

Es probable que los fallos de inserciones por dependencia se produzcan como cascada por no haber sido exitosa una de las primeras inserciones.
Es complicado validar los datos en estas condiciones, porque son INSERTs masivos.
Yo lo que haría se´ria verificar una a una las inserciones para ver donde falla, y luego pasar a la siguiente.

El trigger puede esperar. Si nlos datos no se insertan, no hay que pueda ejecutase.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)