SQL - Ayuda con un ejercicio

   
Vista:

Ayuda con un ejercicio

Publicado por Fernando (3 intervenciones) el 16/05/2016 12:50:13
Hola,

Cuando ejecuto esto me da un error. ¿Alguien sabría decirme el por qué?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
 
DROP SCHEMA IF EXISTS `mi_zoo` ; -- borramos cualquier rastro de tabla mi.zoo
CREATE SCHEMA IF NOT EXISTS `mi_zoo` DEFAULT CHARACTER SET utf8 ; -- creamos la base de datos mi.zoo
USE `mi_zoo` ;
 
-- -----------------------------------------------------
-- Table `mi_zoo`.`Area_tematica`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mi_zoo`.`Area_tematica` ; -- borramos la tabla area_tematica
 
CREATE TABLE IF NOT EXISTS `mi_zoo`.`Area_tematica` (
  `Nombre_area_tematica` VARCHAR(60) NOT NULL ,  -- declaramos el atributo nombre - campo obligatorio
  `Extension` VARCHAR(60) NOT NULL ,         -- declaramos el atributo extension
  `Ubicacion` VARCHAR(60) NOT NULL ,             -- declaramos el atributo ubicacion del area tematica - campo obligatorio
  `Descripcion` VARCHAR(500) NOT NULL ,          -- declaramos la description del area tematica
  `DNI_operario_coordina` VARCHAR(15) DEFAULT NULL,   -- declaramos el atributo DNI del operario
    PRIMARY KEY (`Nombre_area_tematica`)         --  declarmos el nombre del area tematica como clave primaria
 
);
 
-- -----------------------------------------------------
-- Table `mi_zoo`.`Operario`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mi_zoo`.`Operario` ;
 
CREATE TABLE IF NOT EXISTS `mi_zoo`.`Operario` (
  `DNI_operario` VARCHAR(15) NOT NULL,                 -- declaramos del atributo DNI del operario
  `Nombre_Operario` VARCHAR(50) NOT NULL ,            -- declaramos el nombre del operario
  `Dia_nacimiento` INT NULL DEFAULT NULL ,            -- declaramos dia de nacimiento del operario
  `Mes_nacimiento` INT NULL DEFAULT NULL ,            -- declaramos mes de nacimiento del operario
  `Anno_nacimiento` INT NULL DEFAULT NULL ,           -- declaramos ano de nacimiento del operario
  `Sueldo` FLOAT NOT NULL ,                           -- declaramos sueldo del operario
  `Email` VARCHAR(50) NOT NULL,                       -- declaramos mail del operario
  `Telefono` VARCHAR(40) NOT NULL ,                   -- declaramos telefono del operario
  `Dia_alta` INT NULL DEFAULT NULL ,                  -- declaramos dia dado de alta del operario
  `Mes_alta` INT NULL DEFAULT NULL ,                  -- declaramos mes dado de alta del operario
  `Anno_alta` INT NULL DEFAULT NULL ,                 -- declaramos ano dado de alta del operario
  `Nombre_a_tematica_trabaja` VARCHAR(60) DEFAULT NULL,   -- declaramos nombre area tematica
 
  PRIMARY KEY (`DNI_operario`),                       -- declaramos DNI como primary key
  FOREIGN KEY (`Nombre_a_tematica_trabaja`)           -- declaramos el atributo del area tematica como foreign key
    REFERENCES `mi_zoo`.`Area_tematica` (`Nombre_area_tematica`)   -- decimos en que tabla se encuentra
 
  );
 
  ALTER TABLE `mi_zoo`.`Area_tematica`                -- insertamos nuevo elemento en la tabla de area tematica
	ADD FOREIGN KEY (`DNI_operario_coordina` )        -- declaramos el DNI del operario como foreign key
    REFERENCES `mi_zoo`.`Operario` (`DNI_operario` );  -- decimos donde esta ese elemento
 
 
 
USE `mi_zoo`;
 
 
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
 
--------------------------------------
INSERT INTO area_tematica (Nombre_area_tematica, Extension, Ubicacion, Descripcion) VALUES ('America del Norte','6000 metros cuadrados','Bloque A','En esta area se exhiben ejemplares de la variedad americana de  mamíferos terrestres, que se caracterizan además por ser los de mayor tamaño del continente');
 
 
 
INSERT INTO operario VALUES ('30970803S','Gonzalo Abad Caballero', 21, 05, 1985, 2000, 'gonzalo@es.es', '637456378', 12, 05, 1992);
 
 
 
UPDATE area_tematica SET `DNI_operario_coordina`='30970803S'  WHERE  area_tematica.`Nombre_area_tematica` = 'America del Norte';
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de xve

Ayuda con un ejercicio

Publicado por xve (237 intervenciones) el 16/05/2016 13:18:20
Hola Fernando, y que error te da???

Que versión de SQL estas utilizando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un ejercicio

Publicado por Gonzalo (21 intervenciones) el 16/05/2016 14:56:09
Tu error es muy simple:
1
2
3
4
09:53:25	INSERT INTO operario VALUES ('30970803S','Gonzalo Abad Caballero', 21, 05, 1985, 2000, 'gonzalo@es.es',
'637456378', 12, 05, 1992)
Error Code: 1136. Column count doesn't match value count at row 1	0.015 sec

Ese insert está mal. Estás enviando en el VALUES una cantidad de valores diferente a la cantidad de columnas que la tabla tiene.
La tabla tiene DOCE columnas, y tu estás enviando ONCE datos.

Alguno te has olvidado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un ejercicio

Publicado por Fernando (3 intervenciones) el 16/05/2016 15:11:28
Gracias, he sido un poco paquete.
Ahora tengo otro poblemilla, cosas de empezar en esto.

Ejecutando script -> ok, insertando tablar -> ok

Cuando quiero añadir un atributo a la tabla como Not null me da un error. Y no se porque. Os adjunto los ficheros por si eso ocurre algo.

Gracias xx 1.00000000000000000000000
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un ejercicio

Publicado por Gonzalo (21 intervenciones) el 16/05/2016 19:04:45
Sin mirar los scripts aún te comento que si intentas agregar una columna a una tabla que ya tiene datos, y la columna es NOT NULL, te fallará porque los registros preexistentes en la tabla no contendrán un dato que cumpla la restricción.
Hay dos soluciones: 1) Vacías la tabla y le agregas la columna, y 2) le agregas un DEFAULT '' en el ALTER TABLE, de modo que asuma un valor en caso de no existir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar