none
Ayuda con INSERT INTO en tabla SQL RRS feed

  • Pregunta

  • Hola amigos después de mucho tiempo visitando el foro, tengo un problema con un INSERT INTO ... para una tabla en donde cada vez que deseo insertar un dato me muestra error, les adjunto el Query de la BD para que pueda algún alma caritativa poder ayudarme jejeje...

    CREATE TABLE ORIGEN(
    CodigoOrig     INT Identity,
    ID_Ciudad      INT,
    Direccion      Varchar  (30),
    Telefono       Varchar  (12)
    )
    GO
    --------------
    ALTER TABLE ORIGEN
    ADD CONSTRAINT XPKORIGEN PRIMARY KEY  CLUSTERED (CodigoOrig ASC)
    GO
    --------------
    ALTER TABLE ORIGEN
    ADD FOREIGN KEY(ID_Ciudad)REFERENCES CIUDAD
    GO
    --------------

    CREATE TABLE DESTINO(
    CodigoDest     INT Identity,
    ID_Ciudad      INT,
    Direccion      Varchar  (30),
    Telefono       Varchar  (12)
    )
    GO
    --------------
    ALTER TABLE DESTINO
    ADD CONSTRAINT XPKDESTINO PRIMARY KEY  CLUSTERED (CodigoDest ASC)
    GO
    --------------
    ALTER TABLE DESTINO
    ADD FOREIGN KEY(ID_Ciudad)REFERENCES CIUDAD
    GO
    --------------

    CREATE TABLE RUTA(
    Codigo_Ruta        Int Identity,
    Id_Origen      Int,
    Id_Destino     Int,
    )
    GO
    --------------
    ALTER TABLE RUTA
    ADD CONSTRAINT XPKRUTA PRIMARY KEY  CLUSTERED (Codigo_Ruta ASC)
    GO
    --------------
    ALTER TABLE RUTA
    ADD FOREIGN KEY(Id_Destino)REFERENCES DESTINO
    GO
    --------------
    ALTER TABLE RUTA
    ADD FOREIGN KEY(Id_Origen)REFERENCES ORIGEN
    GO

    Es aqui en donde no me permite ingresar los datos y muestra error, previament antes de crear los FK en la tabla Ruta se pueden insertar los datos, pero despues de crear las relaciones con los FK ya no se puede agregar nada...

    ----TABLA RUTA -----
    INSERT INTO RUTA (Id_Origen ,Id_Destino ) VALUES (1,2);
    SELECT * FROM RUTA

    ---------------------------------------------------------------------------------------------------------------------------------------

    Adicinonalmente dejo el link con mi BD, quizas puedan aportar algunas ideas adicionales para mejora...Gracias.

    https://drive.google.com/file/d/0B9ql1wB0CRIEMm1QM1U4SUdjekE/view



    Juan Fernando

    viernes, 23 de junio de 2017 14:13

Respuestas

  • Los valores 1 y 2 corresponden a los identificadores de ciudad 'ID_Ciudad' mas no al código de origen o destino 'CodigoOrig/CodigoDest', nota que dichas columnas son las que participan en la restricción de referencia: FOREIGN KEY.

    INSERT INTO RUTA (Id_Origen ,Id_Destino ) 
    SELECT
        (SELECT CodigoOrig FROM ORIGEN WHERE ID_Ciudad = 1),
        (SELECT CodigoDest FROM DESTINO WHERE ID_Ciudad = 2)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Joyce_ACModerator viernes, 23 de junio de 2017 18:07
    • Marcado como respuesta Juan_fernando viernes, 23 de junio de 2017 18:11
    viernes, 23 de junio de 2017 15:46
  • hola, En la tabla destino tiene solo1 registro

    CodigoDest    ID_Ciudad    Direccion    Telefono
    1    2    Av. Trujillo 2345    074657484

    Al esta insertando en la tabla ruta con código 2 de la columna Id_Destino, ese valor no existe de la tabla destino

    Si pruebas con al cambiar 1 si te va a ingresar

    ----TABLA RUTA -----
    INSERT INTO RUTA (Id_Origen ,Id_Destino ) VALUES (1,1);
    SELECT * FROM RUTA


    Si se puede imaginar... se puede programar. Me encanta depender de la tecnología para vengarme de ella y dominarla como los locos.

    • Marcado como respuesta Juan_fernando viernes, 23 de junio de 2017 18:11
    viernes, 23 de junio de 2017 15:05

Todas las respuestas

  • hola, En la tabla destino tiene solo1 registro

    CodigoDest    ID_Ciudad    Direccion    Telefono
    1    2    Av. Trujillo 2345    074657484

    Al esta insertando en la tabla ruta con código 2 de la columna Id_Destino, ese valor no existe de la tabla destino

    Si pruebas con al cambiar 1 si te va a ingresar

    ----TABLA RUTA -----
    INSERT INTO RUTA (Id_Origen ,Id_Destino ) VALUES (1,1);
    SELECT * FROM RUTA


    Si se puede imaginar... se puede programar. Me encanta depender de la tecnología para vengarme de ella y dominarla como los locos.

    • Marcado como respuesta Juan_fernando viernes, 23 de junio de 2017 18:11
    viernes, 23 de junio de 2017 15:05
  • Los valores 1 y 2 corresponden a los identificadores de ciudad 'ID_Ciudad' mas no al código de origen o destino 'CodigoOrig/CodigoDest', nota que dichas columnas son las que participan en la restricción de referencia: FOREIGN KEY.

    INSERT INTO RUTA (Id_Origen ,Id_Destino ) 
    SELECT
        (SELECT CodigoOrig FROM ORIGEN WHERE ID_Ciudad = 1),
        (SELECT CodigoDest FROM DESTINO WHERE ID_Ciudad = 2)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Propuesto como respuesta Joyce_ACModerator viernes, 23 de junio de 2017 18:07
    • Marcado como respuesta Juan_fernando viernes, 23 de junio de 2017 18:11
    viernes, 23 de junio de 2017 15:46
  • Excelent muchas gracias...

    Juan Fernando

    viernes, 23 de junio de 2017 18:12
  • Excelent muchas gracias...

    Juan Fernando

    viernes, 23 de junio de 2017 18:12