Boletín mugperu Digital - Julio 2009!
  Search 
Monday, May 21, 2012 ..:: Foros de Discusión ::.. Register  Login
Foros MUGPERU Minimize
Subject: Error en el sintaxis de SQL
Prev Next
You are not authorized to post a reply.

Author Messages
Elmercillo01
Posts:13

12/06/2005 11:23 AM  

Hola amigos tengo una consulta e desarrolado un modelo entidad relacion en el DBDESIGNER y hay una opcion que me crea el codigo SQL  del modelo y me bota el siguiente codigo:

CREATE TABLE Cargo (
  Id_Cargo CHAR(4) NOT NULL,
  Descripcion VARCHAR(30) NULL,
  PRIMARY KEY(Id_Cargo)
);

CREATE TABLE Variacion (
  Id_Variacion CHAR(4) NOT NULL,
  Descripcion VARCHAR(30) NULL,
  Tipo CHAR(18) NULL,
  PRIMARY KEY(Id_Variacion)
);

CREATE TABLE Area (
  Id_Area CHAR(4) NOT NULL,
  Nombre VARCHAR(20) NOT NULL,
  Descripcion VARCHAR(30) NOT NULL,
  PRIMARY KEY(Id_Area)
);

CREATE TABLE Tipo_Persona (
  Id_Tipo_persona CHAR(4) NOT NULL,
  Descripcion VARCHAR(20) NULL,
  PRIMARY KEY(Id_Tipo_persona)
);

CREATE TABLE Persona (
  Id_persona CHAR(6) NOT NULL,
  Id_Tipo_persona CHAR(4) NOT NULL,
  Categoria CHAR(18) NOT NULL,
  Nombre_RS VARCHAR(45) NOT NULL,
  Direccion VARCHAR(100) NULL,
  Telefono VARCHAR(8) NULL,
  E_Mail VARCHAR(30) NULL,
  PRIMARY KEY(Id_persona),
  INDEX Persona_FKIndex1(Id_Tipo_persona),
  FOREIGN KEY(Id_Tipo_persona)
    REFERENCES Tipo_Persona(Id_Tipo_persona)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Servicio (
  Id_Servicio CHAR(6) NOT NULL,
  RUC VARCHAR(11) NULL,
  PRIMARY KEY(Id_Servicio),
  INDEX Servicio_FKIndex1(Id_Servicio),
  FOREIGN KEY(Id_Servicio)
    REFERENCES Persona(Id_persona)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Proveedor (
  Id_Proveedor CHAR(6) NOT NULL,
  RUC VARCHAR(11) NULL,
  PRIMARY KEY(Id_Proveedor),
  INDEX Proveedor_FKIndex1(Id_Proveedor),
  FOREIGN KEY(Id_Proveedor)
    REFERENCES Persona(Id_persona)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Cliente (
  Id_persona CHAR(6) NOT NULL,
  RUC VARCHAR(11) NULL,
  DNI CHAR(8) NULL,
  Limite_Credito FLOAT NOT NULL,
  Credito_Utilizado FLOAT NOT NULL,
  Credito_Disponible FLOAT NOT NULL,
  Saldo FLOAT NOT NULL,
  PRIMARY KEY(Id_persona),
  INDEX Cliente_FKIndex1(Id_persona),
  FOREIGN KEY(Id_persona)
    REFERENCES Persona(Id_persona)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Empleado (
  Id_Empleado CHAR(6) NOT NULL,
  Id_Cargo CHAR(4) NOT NULL,
  Id_Area CHAR(4) NOT NULL,
  Sueldo_Mensual FLOAT NULL,
  PRIMARY KEY(Id_Empleado),
&nbp; INDEX Empleado_FKIndex1(Id_Empleado),
  INDEX Empleado_FKIndex2(Id_Area),
  INDEX Empleado_FKIndex3(Id_Cargo),
  FOREIGN KEY(Id_Empleado)
    REFERENCES Persona(Id_persona)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Id_Area)
    REFERENCES Area(Id_Area)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Id_Cargo)
    REFERENCES Cargo(Id_Cargo)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Boleta_Remuneracion (
  Año DATETIME NOT NULL,
  Mes DATETIME NOT NULL,
  Id_Empleado CHAR(6) NOT NULL,
  Total FLOAT NULL,
  PRIMARY KEY(Año, Mes, Id_Empleado),
  INDEX Boleta_Remuneracion_FKIndex1(Id_Empleado),
  FOREIGN KEY(Id_Empleado)
    REFERENCES Empleado(Id_Empleado)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Contrato (
  Id_Contrato CHAR(4) NOT NULL,
  Id_Empleado CHAR(6) NOT NULL,
  Detalle VARCHAR(20) NULL,
  Fecha_Inicio DATETIME NULL,
  Fecha_Fin DATETIME NULL,
  Sueldo FLOAT NULL,
  PRIMARY KEY(Id_Contrato),
  INDEX Contrato_FKIndex1(Id_Empleado),
  FOREIGN KEY(Id_Empleado)
    REFERENCES Empleado(Id_Empleado)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Detalle_Boleta (
  Id_Empleado CHAR(6) NOT NULL,
  Mes DATETIME NOT NULL,
  Año DATETIME NOT NULL,
  Id_Variacion CHAR(4) NOT NULL,
  Valor FLOAT NULL,
  PRIMARY KEY(Id_Empleado, Mes, Año, Id_Variacion),
  INDEX Detalle_Boleta_FKIndex1(Año, Mes, Id_Empleado),
  INDEX Detalle_Boleta_FKIndex2(Id_Variacion),
  FOREIGN KEY(Año, Mes, Id_Empleado)
    REFERENCES Boleta_Remuneracion(Año, Mes, Id_Empleado)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Id_Variacion)
    REFERENCES Variacion(Id_Variacion)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

Pero me sale error en la parte de index ... Agradeceria mucho que me pudieran ayudar ... Porque no se para que sirve ese index en SQL o si existira otro comando que acepte en sql

GRacias

hmedinac
Posts:22

07/07/2005 11:31 AM  

Hola :

Elimina esas lineas de tu script y despues de crear la tabla Detalle_Boleta ejecutas estos 2 querys

CREATE INDEX Detalle_Boleta_FKIndex1 ON Detalle_Boleta(Año, Mes, Id_Empleado)


CREATE INDEX Detalle_Boleta_FKIndex2 ON Detalle_Boleta(Id_Variacion)

Saludos


Henry Medina C.
Analista - Programador
You are not authorized to post a reply.



ActiveForums 3.7
        
Copyright 2001-2012 MUGPERU   Terms Of Use  Privacy Statement