Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

413
Vistas
postgresql: la relación "table_name" no existe al intentar CREAR TABLA

Estoy ejecutando este código a través de pgAdmin4:

 CREATE TABLE product( code integer, pname varchar(30), descr varchar(50), utype varchar(30), uprice float, manu varchar(30), sid integer, PRIMARY KEY (code, sid), FOREIGN KEY (sid) REFERENCES supplier(sid) ); CREATE TABLE branch( bid integer, bname varchar(30), baddress varchar(50), PRIMARY KEY (bid) ); CREATE TABLE stock( code integer, bid integer, units float, PRIMARY KEY (code, bid) ); CREATE TABLE receipt( bid integer, rdate date, rtime time, ptype varchar(30), total float, PRIMARY KEY (bid, rdate, rtime) ); CREATE TABLE purchase( bid integer, rdate date, rtime time, code integer, units float, PRIMARY KEY (bid, rdate, rtime, code), check (units > 0) ); CREATE TABLE supplier( sid integer, sname varchar(30), address varchar(50), phone numeric (9,0), PRIMARY KEY (sid) ); INSERT INTO product (code, pname, descr, utype, uprice, manu, sid) VALUES (987, 'Tomatoes', 'Vegetable', 'Kg', 5.99, 'manufacturer1', 111), (876, 'Cucumbers', 'Vegetable', 'Kg', 4.99, 'manufacturer1', 222), (765, 'Cornflakes', 'Cornflakes', 'Box', 15.9, 'manufacturer1', 222), INSERT INTO branch (bid, bname, baddress) VALUES (987, 'tal aviv', 'road 1 tel aviv'), (878, 'Raanana', 'road 1 raanana'), (767, 'Holon', 'road 1 holon'); INSERT INTO stock (code, bid, units) VALUES (987, 989, 50), (987, 878, 75), (987, 767, 100), INSERT INTO receipt (bid, rdate, rtime, ptype) VALUES (989, '2020-3-19', '10:00', 'Cash'), (989, '2020-7-16', '12:30', 'Credit'), (989, '2020-7-15', '15:35', 'Credit'), INSERT INTO purchase (bid, rdate, rtime, code, units) VALUES (989, '2020-3-18', '10:00', 987, 5), (989, '2020-3-18', '10:00', 876, 3), (989, '2020-3-18', '10:00', 543, 4), INSERT INTO supplier (sid, sname, address, phone) VALUES (111, 'supplier2', 'road2 tel aviv', 111111111), (222, 'supplier3', 'road3 jerusalem', 222222222), (333, 'supplier4', 'road2 eilat', 333333333);

Sigo recibiendo este mensaje: ERROR: la relación "proveedor" no existe Estado SQL: 42P01

El problema es con la clave externa en la tabla de productos (primera tabla), lo sé porque la eliminé y creó todas las tablas con valores (eliminé algunos de los valores para facilitar la escritura).

No estoy seguro si es un error de sintaxis, probé un par de formas de resolverlo pero no tengo ni idea, ¿alguna sugerencia? Gracias por adelantado.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Debe crear una tabla de supplier antes de la tabla de product como sid de las referencias de la tabla de productos a sid en la tabla de proveedores como clave externa.

Aquí está la demostración de trabajo.

 CREATE TABLE supplier( sid integer, sname varchar(30), address varchar(50), phone numeric (9,0), PRIMARY KEY (sid) ); CREATE TABLE product( code integer, pname varchar(30), descr varchar(50), utype varchar(30), uprice float, manu varchar(30), sid integer, PRIMARY KEY (code, sid), FOREIGN KEY (sid) REFERENCES supplier(sid) );
over 4 years ago · Santiago Trujillo Denunciar

0

Una opción es agregar la restricción más tarde (antes de la inserción). De esta manera, no tiene que preocuparse por el orden de creación de la tabla.

 ALTER TABLE product ADD FOREIGN KEY (sid) REFERENCES supplier(sid);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda