Fórum Reiniciar uma sequencia. #581939
30/05/2017
0
Tenho uma tabela onde tenho:
ID
Data
Os dois campos são chave primaria.
ID é gerado sequencialmente e a data é a data do dia.
Gostaria que qdo o ID marcasse 999 ele iniciasse no 1, 2, 3, 4.....(iniciasse uma nova sequencia).
Obrigado
Alecsandro Sorrilha
Curtir tópico
+ 0Posts
30/05/2017
Daniel Araújo
Acredito que é quase unanimidade hoje ter um campo auto incremento com chave primária e deixar essa responsabilidade com o banco. Mas se você quer mesmo cuidar disso, crie uma função para retornar o próximo id:
CREATE FUNCTION ObterProximoId() RETURNS INT AS BEGIN DECLARE @MaiorId INT, @ProximoId INT; SET @MaiorId = (SELECT MAX(id) FROM tabela); IF (@MaiorId = 999) SET @ProximoId = 1; ELSE SET @ProximoId = @MaiorId + 1; RETURN @ProximoId; END;
E quando for fazer o insert, utilize a função:
INSERT INTO tabela(id, data) VALUES(dbo.ObterProximoId(), GETDATE());
Fiz o exemplo com o sql server. Você adapta para o banco que estiver utilizando.
Se a resposta for útil não esqueça de dar um like!
Gostei + 0
31/05/2017
Mateus Ribeiro
E outra, a junção desses dois campos formam UMA chave primária ou cada uma é chave primaria individualmente?
Gostei + 0
31/05/2017
Alecsandro Sorrilha
Fiz com o amigo Daniel posto e deu certo.
Agradeço as vcs.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)