Llave porque y fk

Tengo una duda es que lo que pasa es que hice una base de datosy en una tabla tengo una porque y en otra tabla que hace referencia ala fk que hace referencia ala porque de la primera tabla cuando le pongo a la segunda tabla los datos en el campo donde va la fk, aquí esta mi dudo que se le pone si hay debe de jalar la porque de la primera tabla.
Y es que lo que pasa que no me corre ya que se necesita llenar todos los catos de las estidadesespero que alguien me ayude y gracias.
CREATE TABLE EQU_SUCUR(
ID_EQUIPO INT PRIMARY KEY NOT NULL,
ING_CARGO VARCHAR(30),
UBICACION VARCHAR(30))
INSERT INTO EQU_SUCUR VALUES(1,'MARTIN','SISTEMAS')
CREATE TABLE SUCURSALES(
ID_SUCURSAL INT PRIMARY KEY NOT NULL,
ID_EQUIPO INT FOREIGN KEY REFERENCES EQU_SUCUR(ID_EQUIPO),
SUCURSAL VARCHAR(30))
INSERT INTO SUCURSALES VALUES(1,'MERDIA')
En este hueco de la fk que se le pone o no se pone nada

1 Respuesta

Respuesta
1
Haber si te entendí:
Dice que quiere llenar la segunda tabla.
Para eso primero debes tener datos en la tabla EQU_SUCUR.
Ahora la FOREIGN KEY de la tabla SUCURSALES no va ha jalar los datos de EQU_SUCUR, lo que hace es simplemente verificar que exista el dato en la EQU_SUCUR.
ahora tu sentencia INSERT INTO SUCURSALES VALUES(1,'MERDIA')
Al no espcificar los campos a los cuales desea insertar sql esta esperando que le pases en VALUES 3 valores, si solo quieres insertar 2 valores saltándote el ingreso del campo FOREING KEY debería poner primero que acepte valores nulos seria así:
Create table sucursales(
ID_SUCURSAL INT PRIMARY KEY NOT NULL,
ID_EQUIPO INT NULL FOREIGN KEY REFERENCES EQU_SUCUR(ID_EQUIPO),
SUCURSAL VARCHAR(30))
ahor bien tu sentecia para insertar quedaria asi.
INSERT INTO SUCURSALES (ID_SUCURSAL, SUCURSAL) VALUES(1,'MERDIA')
Cuando no especifique los campos debes ingresar tantos valores como campos tenga tu tabla.
INSERT INTO SUCURSALES  VALUES(1, 1 , 'MERDIA')

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas