Combinar um unique em SQL

2 respostas
B

Ola, tenho em uma tabela os campos:

empresa_id = 0
nome_funcionario = joao

empresa_id = 1
nome_funcionario = joao

Nao posso inserir:

empresa_id = 1
nome_funcionario = joao

Resumindo: como usar o unique para q eu nao possa nesta tabela inserir dois ‘nome_funcionario’ iguais do mesmo ‘empresa_id’? Mas se o campo ‘empresa_id’ for diferente os nomes podem ser iguais!

Obs: estou usando mysql!
Vlw!

2 Respostas

Aldrin_Leal

No SQL, você pode definir constraints na definição de campo, mas também como uma definição adicional (i.e., depois do último campo). Segue um pseudoexemplo:

CREATE TABLE FUNCIONARIO (
  ID_FUNCIONARIO INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  EMPRESA INT NOT NULL REFERENCES EMPRESA (ID),
  NOME NOT NULL,
  UNIQUE (EMPRESA, NOME)
);
B

Eu tentei usar isso mas n deu certo, ta deixando criar ids das empresas iguais, mas os nomes nao, nem se os ids forem diferentes, praticamente ta o nome como unique :confused:
Alguma ideia do q esteja acontecendo?

Edit--------------

Esqueci de tirar um unique sozinho q tava no campo nome xD

Vlw!

Criado 18 de janeiro de 2008
Ultima resposta 18 de jan. de 2008
Respostas 2
Participantes 2