autoincrementation - SQL/NoSQL - Programmation
Marsh Posté le 07-06-2007 à 15:53:39
non, les autot increment sont des entiers
a toi de perosnnaliser lros de l'affichage
Marsh Posté le 08-06-2007 à 10:38:42
Tu fais 2 colonnes, une "année" et une "id" (en auto_increment), avec une pk sur le couple "année", "id". Et si tu as MySQL, à priori tu peux réinitialiser l'autoincrement tous les ans avec un ALTER TABLE latable AUTO_INCREMENT=0 (je sais pas si c'est une bonne idée, j'ai jamais testé)
Marsh Posté le 11-06-2007 à 11:01:03
le mieux c'est de passer par une séquence et allimenter l'id par un trigger qui va taper dans la séquence et faire la mise en forme.
seul truc, les séquences ne sont pas supportées sur tous les sgbd...
tu vas donc travailler avec une table "compteur" qui va être incrémentée par le trigger en question...
create trigger tbl_ins
on tbl
instead of insert
as
begin
declare @cpt numeric;
declare @year char(4);
select @cpt = cpt + 1, @year = year from cpttbl with (rowlock) where year = year(getdate());
update cpttbl set cpt = @cpt where year = @year;
insert into tbl (id, field1, field2, etc.) values (year + '/' + right('000' + cast(@cpt as varchar(3)), 3), inserted.field1, inserted.field2, inserted.etc.);
end;
(en gros)
Marsh Posté le 07-06-2007 à 15:42:33
Bonjour à tous
Voila j'ai une table avec un numero d'affaire en auto_incremet dans dans la table il m'affiche :
1
2
3
4
Mais est il possible de donner un autre forme au 1, 2 , 3 comme par exemple :
2007/001
2007/002
2007/003
Voila je vous remercie d'avance