Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: krlsedu em 21 de Junho de 2010, 20:43

Título: Mysql - campo único composto
Enviado por: krlsedu em 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!
Título: Re: Mysql - campo único composto
Enviado por: krlsedu em 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