"Paulo Roberto Siqueira" wrote:
  >ufgvirtual=# create table matricula (
  >ufgvirtual(# id_aluno char(15) references pessoa,
  >ufgvirtual(# id_curso int4 references curso_polo,
  >ufgvirtual(# id_polo int2 references curso_polo,
  >ufgvirtual(# local_prova varchar(50) not null,
  >ufgvirtual(# autorizado bool default 'f' not null,
  >ufgvirtual(# id_plano_pgto int2 references plano_pgto not null,
  >ufgvirtual(# data_matricula date default CURRENT_DATE not null,
  >ufgvirtual(# primary key(id_aluno,id_curso,id_polo));
 
...

  >I have tables pessoa, curso, polo, curso_polo and matricula. Primary key in
  >curso_polo are id_curso (references curso) and id_polo (references polo). In
  >table matricula I want as primary key id_pessoa (references pessoa),
  >id_curso (references curso_polo) and id_polo (references curso_polo).

You can't use REFERENCES on a column if the target primary key is made
up of more than one column; you have to use a FOREIGN KEY table
constraint:

create table matricula (
  id_aluno char(15) references pessoa,
  id_curso int4 not null,                  -- I assume you want
  id_polo int2 not null,                   -- not null here
  local_prova varchar(50) not null,
  autorizado bool default 'f' not null,
  id_plano_pgto int2 references plano_pgto not null,
  data_matricula date default CURRENT_DATE not null,
  primary key(id_aluno,id_curso,id_polo),
  FOREIGN KEY (id_curso, id_polo
      REFERENCES curso_polo (id_curso,id_polo));
 
-- 
Oliver Elphick                                [EMAIL PROTECTED]
Isle of Wight                              http://www.lfix.co.uk/oliver
PGP: 1024R/32B8FAA1: 97 EA 1D 47 72 3F 28 47  6B 7E 39 CC 56 E4 C1 47
GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
                 ========================================
     "Delight thyself also in the LORD; and he shall give
      thee the desires of thine heart."                
                                  Psalms 37:4 


Reply via email to