[Resolvido] Chaves únicas em Oracle

Fala pessoal,

Bom eu não sou nenhum expert em Oracle e por isso estou com essa dúvida que eu acredito ser bem simples de resolver. Tentei procurar algumas coisa relacionadaS no Google mas não encontrei.

Bom o que eu preciso é criar em uma tabela com duas colunas (além da coluna id, chave primária), uma é uma coluna númerica (matrícula) que será incrementada através da aplicação. Essa coluna não é a chave primária. A outra coluna é o ano corrente que também será inserido através da aplicação.

Assim sendo eu teria uma tabela assim:

Tabela: usuarios
Coluna: ID- Chave Primária (Incrementada através de sequence)
Coluna: Matricula(Incrementada através da aplicação)
Coluna: Ano - (Inserido com a aplicação)

O que eu preciso fazer com essa tabela:
Eu preciso que as colunas matrícula e ano sejam únicos. Ou seja a cada virada de ano, eu posso repetir a matrícula. Por exemplo:

ID			Matricula			Ano
------------------------------------
1				1				2008
2				2				2008
3				3				2008
4				4				2008
5				5				2008
6				6				2008
7				1				2009
8				2				2009
9				4				2009
10				5				2009
11				1				2010
12				2				2010
13				3				2010
14				4				2010

O que eu não posso fazer é repetir a mesma matrícula para um mesmo ano. Eu só posso repetir a matrícula se o ano for diferente das outras matrículas. Se for inserir uma matrícula repetida, é para dar erro.

O Oracle possui algum tipo de índice ou chave que permita isso?

Seria o caso de se usar uma chave composta!!! Ou seja, uma chave composta por duas colunas. Isso não tem nada a ver com o Oracle não, é possível em qualquer SGBD.

O Oracle tem unique constraint: http://www.techonthenet.com/oracle/unique.php

Simples cara.

Crie uma unique Constraint

create unique index on ( ) ;
/

no seu caso seria assim

create unique index on usuarios (matricula, ano);
/

É isso mesmo galera. Obrigado mesmo.
Criei a constraint e está funcionando balinha. Valeu mesmo!