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?