Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] no unique constraint a tabla nueva.

Estas en el tema de no unique constraint a tabla nueva. en el foro de PostgreSQL en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original CREATE TABLE commons . servicio (     id BIGINT NOT NULL ,     version INTEGER NOT NULL ...
  #1 (permalink)  
Antiguo 11/05/2015, 08:21
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
no unique constraint a tabla nueva.

Código SQL:
Ver original
  1. CREATE TABLE commons.servicio (
  2.     id BIGINT NOT NULL,
  3.     version INTEGER NOT NULL,
  4.     codigo CHARACTER VARYING(15),
  5.     codigo_secuencia BIGINT,
  6.     razon_social CHARACTER VARYING(50),
  7.     cif CHARACTER VARYING(12),
  8.     sector CHARACTER VARYING(255),
  9.    
  10.     calle CHARACTER VARYING(80),
  11.     numero CHARACTER VARYING(10),
  12.     piso CHARACTER VARYING(10),
  13.     poblacion CHARACTER VARYING(50),
  14.     provincia CHARACTER VARYING(255),
  15.     cp CHARACTER VARYING(5),
  16.     latitude NUMERIC(9,6),
  17.     longitude NUMERIC(9,6),
  18.    
  19.     nombre_contacto CHARACTER VARYING(50),
  20.     apellido1 CHARACTER VARYING(50),
  21.     apellido2 CHARACTER VARYING(50),
  22.     telefono1 CHARACTER VARYING(15),
  23.     telefono2 CHARACTER VARYING(15),
  24.     email CHARACTER VARYING(50),
  25.     fax CHARACTER VARYING(15),
  26.     web CHARACTER VARYING(50),
  27.    
  28.     security_domain_id BIGINT,
  29.     deleted TIMESTAMP WITH TIME zone
  30. );
  31.    
  32.    
  33. CREATE SEQUENCE commons.servicio_sequence
  34.     START WITH 1
  35.     INCREMENT BY 1
  36.     NO MINVALUE
  37.     NO MAXVALUE
  38.     CACHE 1;
  39.  
  40.  
  41. ALTER TABLE rrhh.proyecto ADD COLUMN servicio BIGINT;
  42.  
  43. ALTER TABLE ONLY rrhh.proyecto
  44.     ADD CONSTRAINT fk_proyecto_servicio FOREIGN KEY (servicio) REFERENCES commons.servicio(id);

Me da el siguiente error:

ERROR: there is no unique constraint matching given keys for referenced table "servicio"

********** Error **********

ERROR: there is no unique constraint matching given keys for referenced table "servicio"
SQL state: 42830

Y es una tabla recien creada.
Alguien me puede ayudar con lo que esta pasando.
  #2 (permalink)  
Antiguo 11/05/2015, 09:31
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: no unique constraint a tabla nueva.

Para crear una foreign key, es necesario que la tabla este referenciada con un campo que sea primary o unique key.

A la primera tabla añade esto:
Código SQL:
Ver original
  1. CREATE TABLE commons.servicio (
  2.     id BIGINT NOT NULL PRIMARY KEY,

Después de esto, ya deja crear la foreign key que tratas de hacer.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/05/2015, 10:47
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: no unique constraint a tabla nueva.

Eres el mejor!!!.
Muchas gracias.

Etiquetas: constraint, sql, tabla, unique
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:25.