norme d'auto increment.

Le
Etienne SOBOLE
Salut

On me pose une colle.
Y a t-il une norme pour définir un champ auto incrémenté.

sous postgresql j'utilise serial (qui a l'air spécifique a postgres)
sour mysql c'est auto-increment (me semble t-il)

en gros y a t-il une norme dans ce domaine.
et ou pourrais je la trouver?

Merci
Etienne
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sebastien Lardiere
Le #21851861
Etienne SOBOLE a écrit :

On me pose une colle.
Y a t-il une norme pour définir un champ auto incrémenté.

sous postgresql j'utilise serial (qui a l'air spécifique a postgres)
sour mysql c'est auto-increment (me semble t-il)

en gros y a t-il une norme dans ce domaine.
et ou pourrais je la trouver?



D'apres la documentation de PostgreSQL, l'ordre create sequence¹, créant
une séquence qui est implicitement créé par l'utilisation du type de
données serial, fait partie de la norme SQL. De là à dire que c'est
standard, il n'y a qu'un pas ...

¹ : http://docs.postgresqlfr.org/8.2/sql-createsequence.html

--
Sébastien
Fred Brouard - SQLpro
Le #21851821
Bonjour,

Etienne SOBOLE a écrit :
Salut

On me pose une colle.
Y a t-il une norme pour définir un champ auto incrémenté.



OUI !

extrait de mon livre SQL (Synthex) co écrit avec Christian Soutou

"
7.6 Auto incrément
SQL:2003 a entériné deux techniques afin de générer des valeurs
numériques auto incrémentées à des fins de d'affectation d'identifiant
(clef primaire en général). Ces deux techniques sont l'attribut de
colonne IDENTITY et la création d'objet de type séquenceurs. Nous allons
détailler ces deux techniques. Notons cependant que SQL n'a pas prévu de
moyen de lecture de la dernière valeur insérée.

7.6.1 Attribut IDENTITY
Une colonne de type numérique exact (entier ou DECIMAL/NUMERIC) peut
être une colonne auto incrémentée par l'adjonction de l'attribut IDENTITY.
La syntaxe d'un tel attribut est la suivante :

<nom_colonne> <type_SQM_numerique_exact> GENERATED
{ ALWAYS | BY DEFAULT } AS IDENTITY
[ ( <spécifications_générateur> ) ]

<spécifications_générateur> :: <paramètre_générateur> [, <paramètre_générateur> [ , ... ] ]


<paramètre_générateur> :: START WITH <i>
INCREMENT BY <j>
{ MAX VALUE <max> | NO MAXVALUE }
{ MIN VALUE <min> | NO MINVALUE }
{ CYCLE | NO CYCLE }

[...]

7.6.2 Séquenceurs
Un séquenceur (SEQUENCE en SQL) est un objet de la base capable de
fournir une continuité d'entier avec, notamment, une valeur de départ,
et un pas défini. Une syntaxe simplifiée de création d'un séquenceur
sous SQL:2003 est la suivante :

CREATE SEQUENCE <nom_sequenceur>
[ AS <type_numérique exact> ]
[ ( <spécifications_générateur> ) ]

"



sous postgresql j'utilise serial (qui a l'air spécifique a postgres)
sour mysql c'est auto-increment (me semble t-il)

en gros y a t-il une norme dans ce domaine.
et ou pourrais je la trouver?

Merci
Etienne




A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Publicité
Poster une réponse
Anonyme