Autor Tópico: Mysql - campo único composto  (Lida 7090 vezes)

Offline krlsedu

  • Usuário Ubuntu
  • *
  • Mensagens: 119
  • Ubuntu e Grêmio, nada pode ser melhor!!!!!!!!
    • Ver perfil
    • SeBrasil
Mysql - campo único composto
« Online: 21 de Junho de 2010, 20:43 »
olá, procurei algo sobre campos unicos compostos, mas não achei nada a principio.
O que preciso seria algo do tipo:

em uma tabela tenho três campos que em conjunto nao podem repetir ex.:

1º registro
nome_turma: "5ª série a"
ano: "2010"
turno: "manhã"

segundo: (deveria ser liberado)
nome_turma: "5ª série b"
ano: "2010"
turno: "manhã"

terceiro (deveria ser bloqueado)
nome_turma: "5ª série a"
ano: "2010"
turno: "manhã"

resumindo o conjunto: nome_turma, ano e turno. são unicos não cada campo individual!
tem como fazer em mysql, ou deveria ser outro banco!
« Última modificação: 21 de Junho de 2010, 20:45 por krlsedu »
Atenciosamente Carlos Eduardo!
A união faz o Ubuntu!!!

Offline krlsedu

  • Usuário Ubuntu
  • *
  • Mensagens: 119
  • Ubuntu e Grêmio, nada pode ser melhor!!!!!!!!
    • Ver perfil
    • SeBrasil
Re: Mysql - campo único composto
« Resposta #1 Online: 21 de Junho de 2010, 21:07 »
depoid de perguntar achei em um material em ingles, naso sabia bem como procurar, mas acabei achando:


para alterar
ALTER TABLE tabela
ADD CONSTRAINT nome_do_inedx_unico UNIQUE (campo1,...,campoN)

ou simplesmente adicionar enquanto cria a tabela

CREATE TABLE tabelax
(
   campo1,
   ...
   campoN,
   CONSTRAINT nome_do_inedx_unico UNIQUE (campo1,...,campoN)
)

Fonte: http://www.w3schools.com/sql/sql_unique.asp

editado para corrigir enqaunto cria tabela
« Última modificação: 21 de Junho de 2010, 21:11 por krlsedu »
Atenciosamente Carlos Eduardo!
A união faz o Ubuntu!!!