I'm having a problem with PostgreSQL, 8.1.
Adding constraints
returns the same error:
SQL error:
ERROR: there is no unique constraint matching given keys referenced table "
Here is the code I'm using:
CREATE TABLE "administrador" (
"administrador_id" serial NOT NULL,
"nome" varchar(200) NOT NULL,
"cpf" varchar(14) NOT NULL,
"rg" varchar(11) NOT NULL,
"email" varchar(200) NOT NULL,
"endereco" varchar(255) NOT NULL,
"numero_endereco" varchar(15) NOT NULL,
"complemento" varchar(255) NULL,
"bairro" varchar(255) NOT NULL,
"cep" varchar(9) NOT NULL,
"cidade" varchar(255) NOT NULL,
"uf" char(2) NOT NULL ,
"telefone" varchar(21) NOT NULL,
"data_cadastro" date NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
"senha" varchar(100) NOT NULL,
PRIMARY KEY("administrador_id")
);
COMMENT ON COLUMN "administrador"."cpf" IS '999.999.999-99';
COMMENT ON COLUMN "administrador"."rg" IS '9.999.999';
COMMENT ON COLUMN "administrador"."cep" IS '99999-999';
COMMENT ON COLUMN "administrador"."uf" IS 'Estado';
COMMENT ON COLUMN "administrador"."telefone" IS '+99 (999) 9-9999-9999';
COMMENT ON COLUMN "administrador"."status" IS '0 = Inativo; 1 = Ativo';
CREATE TABLE "chamado" (
"chamado_id" bigserial NOT NULL,
"empresa_cliente_empresa_id" integer NOT NULL,
"titulo" varchar(200) NOT NULL,
"breve_descricao" varchar(255) NOT NULL,
"descricao" text NULL,
"data" date NOT NULL,
"horario" time NOT NULL,
"urgencia" char(1) NOT NULL DEFAULT 0,
"usuario_solicitante" integer NULL,
"usuario_responsavel" integer NOT NULL,
"status" char(1) NOT NULL,
PRIMARY KEY("chamado_id","empresa_cliente_empresa_id","usuario_solicitante","usuario_responsavel")
);
COMMENT ON COLUMN "chamado"."urgencia" IS '0 = Extremamente Baixa; 1 = Baixa; 2 = Normal; 3 = Alta; 4 = Extremamente Alta';
COMMENT ON COLUMN "chamado"."status" IS '0 = Pendente; 1 = Em Atendimento; 3 = Atendido, mas não resolvido; 4 = Atendido e resolvido';
CREATE TABLE "dado_extra_administrador" (
"administrador_administrador_id" integer NOT NULL,
"dado_id" serial NOT NULL,
"descricao" varchar(255) NOT NULL,
PRIMARY KEY("administrador_administrador_id","dado_id")
);
CREATE TABLE "dado_extra_empresa_cliente" (
"empresa_cliente_empresa_id" integer NOT NULL,
"dado_id" serial NOT NULL,
"descricao" varchar(255) NOT NULL,
PRIMARY KEY("empresa_cliente_empresa_id","dado_id")
);
CREATE TABLE "dado_extra_usuario" (
"usuario_usuario_id" integer NOT NULL,
"dado_id" serial NOT NULL,
"descricao" varchar(255) NOT NULL,
PRIMARY KEY("usuario_usuario_id","dado_id")
);
CREATE TABLE "departamento" (
"projeto_empresa_cliente_empresa_id" integer NOT NULL,
"projeto_projeto_id" integer NOT NULL,
"departamento_id" serial NOT NULL,
"titulo" varchar(200) NOT NULL,
"descricao" text NOT NULL,
"data_criacao" date NOT NULL,
"coordernadas_mapa" text NOT NULL,
"coordernadas_posicionamento" text NOT NULL,
"cor_mapa" varchar(10) NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
PRIMARY KEY("projeto_empresa_cliente_empresa_id","projeto_projeto_id","departamento_id")
);
COMMENT ON COLUMN "departamento"."status" IS '0 = Inativo; 1 = Ativo';
CREATE TABLE "empresa_cliente" (
"empresa_id" serial NOT NULL,
"nome_fantasia" varchar(255) NOT NULL,
"razao_social" varchar(255) NOT NULL,
"cnpj" varchar(18) NOT NULL,
"endereco" varchar(200) NOT NULL,
"numero_endereco" varchar(15) NOT NULL,
"complemento" varchar(255) NULL,
"bairro" varchar(200) NOT NULL,
"cep" varchar(9) NOT NULL,
"cidade" varchar(200) NOT NULL,
"uf" char(2) NOT NULL ,
"email" varchar(200) NOT NULL,
"data_cadastro" date NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
PRIMARY KEY("empresa_id")
);
COMMENT ON COLUMN "empresa_cliente"."cnpj" IS '99.999.999/9999-99';
COMMENT ON COLUMN "empresa_cliente"."cep" IS '99999-999';
COMMENT ON COLUMN "empresa_cliente"."status" IS '0 = Inativa; 1 = Ativa';
CREATE TABLE "equipamento" (
"equipamento_id" serial NOT NULL,
"sala_sala_id" integer NOT NULL,
"sala_departamento_departamento_id" integer NOT NULL,
"sala_departamento_projeto_projeto_id" integer NOT NULL,
"sala_departamento_projeto_empresa_cliente_empresa_id" integer NOT NULL,
"titulo" varchar(200) NOT NULL,
"descricao" text NOT NULL,
"data_criacao" date NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
"coordenadas_design" text NOT NULL,
"cordenadas_posicionamento" text NOT NULL,
"cor_design" varchar(10) NOT NULL,
PRIMARY KEY("equipamento_id","sala_sala_id","sala_departamento_departamento_id","sala_departamento_projeto_projeto_id","sala_departamento_projeto_empresa_cliente_empresa_id")
);
COMMENT ON COLUMN "equipamento"."status" IS '0 = Inativo; 1 = Ativo';
CREATE TABLE "funcionalidade_administrador" (
"funcionalidade_id" serial NOT NULL,
"descricao" varchar(255) NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
PRIMARY KEY("funcionalidade_id")
);
COMMENT ON COLUMN "funcionalidade_administrador"."status" IS '0 = Inativa/Oculta; 1 = Ativa';
CREATE TABLE "funcionalidade_usuario" (
"funcionalidade_id" serial NOT NULL,
"descricao" varchar(255) NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
PRIMARY KEY("funcionalidade_id")
);
COMMENT ON COLUMN "funcionalidade_usuario"."status" IS '0 = Inativa/Oculta; 1 = Ativa';
CREATE TABLE "item_invetario_empresa_cliente" (
"item_id" bigserial NOT NULL,
"empresa_cliente_empresa_id" integer NOT NULL,
"titulo" varchar(200) NOT NULL,
"descricao" text NOT NULL,
"data_cadastro" date NOT NULL,
"valor_item" float NOT NULL,
PRIMARY KEY("item_id","empresa_cliente_empresa_id")
);
CREATE TABLE "log_atividade_usuario" (
"usuario_usuario_id" integer NOT NULL,
"usuario_empresa_cliente_empresa_id" integer NOT NULL,
"log_id" bigserial NOT NULL,
"data" date NOT NULL,
"horario" time NOT NULL,
"descricao" varchar(255) NOT NULL,
PRIMARY KEY("usuario_empresa_cliente_empresa_id","log_id","usuario_usuario_id")
);
CREATE TABLE "procedimento_chamado" (
"procedimento_id" serial NOT NULL,
"chamado_id" varchar(25) NOT NULL,
"descricao" text NOT NULL,
"data" date NOT NULL,
"horario" time NOT NULL,
"chamado_empresa_empresa_cliente_empresa_id" integer NOT NULL,
PRIMARY KEY("procedimento_id","chamado_id","chamado_empresa_empresa_cliente_empresa_id")
);
CREATE TABLE "projeto" (
"empresa_cliente_empresa_id" integer NOT NULL,
"projeto_id" serial NOT NULL,
"titulo" varchar(200) NOT NULL,
"descricao" text NOT NULL,
"data_criacao" date NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
"coordenadas_mapa" text NOT NULL,
"cor_mapa" varchar(10) NOT NULL,
PRIMARY KEY("projeto_id","empresa_cliente_empresa_id")
);
COMMENT ON COLUMN "projeto"."status" IS '0 = Inativo; 1 = Ativo';
CREATE TABLE "relacao_categoria_chamado" (
"chamado_id" varchar(25) NOT NULL,
"projeto_projeto_id" integer NULL,
"departamento_departamento_id" integer NULL,
"sala_sala_id" integer NULL,
"equipamento_equipamento_id" integer NULL,
"categoria" varchar(50) NOT NULL,
"chamado_empresa_empresa_cliente_empresa_id" integer NOT NULL,
PRIMARY KEY("chamado_id","projeto_projeto_id","departamento_departamento_id","sala_sala_id","equipamento_equipamento_id","categoria","chamado_empresa_empresa_cliente_empresa_id")
);
COMMENT ON COLUMN "relacao_categoria_chamado"."categoria" IS 'projeto, departamento, sala ou equipamento';
CREATE TABLE "relacao_fun_admin" (
"administrador_administrador_id" integer NOT NULL,
"funcionalidade_administrador_funcionalidade_id" integer NOT NULL,
PRIMARY KEY("administrador_administrador_id","funcionalidade_administrador_funcionalidade_id")
);
CREATE TABLE "relacao_fun_user" (
"usuario_usuario_id" integer NOT NULL,
"funcionalidade_usuario_funcionalidade_id" integer NOT NULL,
PRIMARY KEY("usuario_usuario_id","funcionalidade_usuario_funcionalidade_id")
);
CREATE TABLE "relacao_proce_item_inven" (
"item_inventario_empresa_cliente_item_id" integer NOT NULL,
"procedimento_chamado_procedimento_id" varchar(25) NOT NULL,
"data" date NOT NULL,
"horario" time NOT NULL,
PRIMARY KEY("item_inventario_empresa_cliente_item_id","procedimento_chamado_procedimento_id")
);
CREATE TABLE "sala" (
"sala_id" serial NOT NULL,
"departamento_departamento_id" integer NOT NULL,
"departamento_projeto_empresa_cliente_empresa_id" varchar(25) NOT NULL,
"departamento_projeto_projeto_id" varchar(25) NOT NULL,
"titulo" varchar(200) NOT NULL,
"descricao" text NOT NULL,
"staus" char(1) NOT NULL DEFAULT 1,
"data_criacao" date NOT NULL,
"coordenadas_mapa" text NOT NULL,
"coordenadas_posicionamento" text NOT NULL,
"cor_mapa" varchar(10) NOT NULL,
PRIMARY KEY("sala_id","departamento_departamento_id","departamento_projeto_empresa_cliente_empresa_id","departamento_projeto_projeto_id")
);
COMMENT ON COLUMN "sala"."staus" IS '0 = Inativo; 1 = Ativo';
CREATE TABLE "usuario" (
"empresa_cliente_empresa_id" integer NOT NULL,
"usuario_id" serial NOT NULL,
"nome" varchar(200) NOT NULL,
"cpf" varchar(14) NOT NULL,
"rg" varchar(11) NOT NULL,
"email" varchar(200) NOT NULL,
"endereco" varchar(255) NOT NULL,
"numero_endereco" varchar(15) NOT NULL,
"complemento" varchar(255) NULL,
"bairro" varchar(255) NOT NULL,
"cep" varchar(9) NOT NULL,
"cidade" varchar(255) NOT NULL,
"uf" char(2) NOT NULL ,
"telefone" varchar(21) NOT NULL,
"data_cadastro" date NOT NULL,
"status" char(1) NOT NULL DEFAULT 1,
"senha" varchar(100) NOT NULL,
PRIMARY KEY("usuario_id","empresa_cliente_empresa_id")
);
COMMENT ON COLUMN "usuario"."cpf" IS '999.999.999-99';
COMMENT ON COLUMN "usuario"."rg" IS '9.999.999';
COMMENT ON COLUMN "usuario"."cep" IS '99999-999';
COMMENT ON COLUMN "usuario"."uf" IS 'Estado';
COMMENT ON COLUMN "usuario"."telefone" IS '+99 (999) 9-9999-9999';
COMMENT ON COLUMN "usuario"."status" IS '0 = Inativo; 1 = Ativo';
ALTER TABLE "dado_extra_administrador"
ADD CONSTRAINT "REL_5"
FOREIGN KEY("administrador_administrador_id")
REFERENCES "administrador"("administrador_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_fun_admin"
ADD CONSTRAINT "REL_9"
FOREIGN KEY("administrador_administrador_id")
REFERENCES "administrador"("administrador_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_categoria_chamado"
ADD CONSTRAINT "REL_25"
FOREIGN KEY("chamado_id", "chamado_empresa_empresa_cliente_empresa_id")
REFERENCES "chamado"("chamado_id", "empresa_cliente_empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "procedimento_chamado"
ADD CONSTRAINT "REL_17"
FOREIGN KEY("chamado_id", "chamado_empresa_empresa_cliente_empresa_id")
REFERENCES "chamado"("chamado_id", "empresa_cliente_empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "sala"
ADD CONSTRAINT "REL_12"
FOREIGN KEY("departamento_projeto_empresa_cliente_empresa_id", "departamento_projeto_projeto_id", "departamento_departamento_id")
REFERENCES "departamento"("projeto_empresa_cliente_empresa_id", "projeto_projeto_id", "departamento_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_categoria_chamado"
ADD CONSTRAINT "REL_19"
FOREIGN KEY("departamento_departamento_id")
REFERENCES "departamento"("departamento_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "usuario"
ADD CONSTRAINT "REL_7"
FOREIGN KEY("empresa_cliente_empresa_id")
REFERENCES "empresa_cliente"("empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "dado_extra_empresa_cliente"
ADD CONSTRAINT "REL_4"
FOREIGN KEY("empresa_cliente_empresa_id")
REFERENCES "empresa_cliente"("empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "projeto"
ADD CONSTRAINT "REL_10"
FOREIGN KEY("empresa_cliente_empresa_id")
REFERENCES "empresa_cliente"("empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "chamado"
ADD CONSTRAINT "REL_14"
FOREIGN KEY("empresa_cliente_empresa_id")
REFERENCES "empresa_cliente"("empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "item_invetario_empresa_cliente"
ADD CONSTRAINT "REL_22"
FOREIGN KEY("empresa_cliente_empresa_id")
REFERENCES "empresa_cliente"("empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_categoria_chamado"
ADD CONSTRAINT "REL_21"
FOREIGN KEY("equipamento_equipamento_id")
REFERENCES "equipamento"("equipamento_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_fun_admin"
ADD CONSTRAINT "REL_8"
FOREIGN KEY("funcionalidade_administrador_funcionalidade_id")
REFERENCES "funcionalidade_administrador"("funcionalidade_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_fun_user"
ADD CONSTRAINT "REL_3"
FOREIGN KEY("funcionalidade_usuario_funcionalidade_id")
REFERENCES "funcionalidade_usuario"("funcionalidade_id");
ALTER TABLE "relacao_proce_item_inven"
ADD CONSTRAINT "REL_23"
FOREIGN KEY("item_inventario_empresa_cliente_item_id")
REFERENCES "item_invetario_empresa_cliente"("item_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_proce_item_inven"
ADD CONSTRAINT "REL_24"
FOREIGN KEY("procedimento_chamado_procedimento_id")
REFERENCES "procedimento_chamado"("procedimento_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "departamento"
ADD CONSTRAINT "REL_11"
FOREIGN KEY("projeto_empresa_cliente_empresa_id", "projeto_projeto_id")
REFERENCES "projeto"("empresa_cliente_empresa_id", "projeto_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_categoria_chamado"
ADD CONSTRAINT "REL_18"
FOREIGN KEY("projeto_projeto_id")
REFERENCES "projeto"("projeto_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "equipamento"
ADD CONSTRAINT "REL_13"
FOREIGN KEY("sala_sala_id", "sala_departamento_departamento_id", "sala_departamento_projeto_empresa_cliente_empresa_id", "sala_departamento_projeto_projeto_id")
REFERENCES "sala"("sala_id", "departamento_departamento_id", "departamento_projeto_empresa_cliente_empresa_id", "departamento_projeto_projeto_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_categoria_chamado"
ADD CONSTRAINT "REL_20"
FOREIGN KEY("sala_sala_id")
REFERENCES "sala"("sala_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "log_atividade_usuario"
ADD CONSTRAINT "REL_6"
FOREIGN KEY("usuario_usuario_id", "usuario_empresa_cliente_empresa_id")
REFERENCES "usuario"("usuario_id", "empresa_cliente_empresa_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "relacao_fun_user"
ADD CONSTRAINT "REL_2"
FOREIGN KEY("usuario_usuario_id")
REFERENCES "usuario"("usuario_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "dado_extra_usuario"
ADD CONSTRAINT "REL_1"
FOREIGN KEY("usuario_usuario_id")
REFERENCES "usuario"("usuario_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "chamado"
ADD CONSTRAINT "REL_15"
FOREIGN KEY("usuario_solicitante")
REFERENCES "usuario"("usuario_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE "chamado"
ADD CONSTRAINT "REL_16"
FOREIGN KEY("usuario_responsavel")
REFERENCES "usuario"("usuario_id")
ON DELETE NO ACTION
ON UPDATE NO ACTION ;
ALTER TABLE ONLY "administrador" ALTER COLUMN "uf" SET DEFAULT 'sc';
ALTER TABLE ONLY "empresa_cliente" ALTER COLUMN "uf" SET DEFAULT 'sc';
ALTER TABLE ONLY "usuario" ALTER COLUMN "uf" SET DEFAULT 'sc';