Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1203 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Sybase, Auto increment

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sybase, Auto increment

n°1443216
laurent77
La réussite vient en couchant
Posté le 15-09-2006 à 18:38:09  profilanswer
 

Re-Bonjour,  
 
Je souhaite créer une table avec un identifiant auto-incrémentable. Jusque là tout va bien.  
Ma table est une table Sybase, mais j'ai aucune idée du produit exact.  
 
J'ai trouvé que sur Sybase, Auto Increment ne marche mais il faut utiliser le mot-clé "Identity".
Jusqu'ici tout va bien, j'ai donc simplement essayé :  
 
CREATE TABLE t_test(
      id INTEGER IDENTITY PRIMARY KEY,
      name VARCHAR(10)
)
 
Cela ne fonctionne pas et me donne l'erreur :  
Line 1:
Identity field 'id_test' must be a numeric with a scale of 0 and not null allowed.  
 
Voilà Voilà !!!! J'avoue que j'ai du mal à comprendre le message d'erreur. Quelqu'un a une idée ?
 
Merccccci
Laurent


---------------
Quelque soit la taille de l' éléphant , il arrivera toujours à remplir une marmite avec ses couilles
mood
Publicité
Posté le 15-09-2006 à 18:38:09  profilanswer
 

n°1443325
olivthill
Posté le 16-09-2006 à 01:50:56  profilanswer
 

Tiens, c'est le même code que sur la page SQLZOO http://sqlzoo.net/howto/source/z.d [...] reate.xml.
 
Tiens, le message d'erreur concerne le champ id_test, alors que la table a un champ id mais pas id_test.
 
En tout cas, le champ doit être déclaré NUMERIC plutôt qu'en INTEGER.
Voici un code qui marchera peut-être mieux:

CREATE TABLE t_test
(
id NUMERIC IDENTITY NOT NULL,
name VARCHAR(10),
CONSTRAINT pk_parent PRIMARY KEY NONCLUSTERED (id)
)


Message édité par olivthill le 16-09-2006 à 01:52:21
n°1443945
laurent77
La réussite vient en couchant
Posté le 18-09-2006 à 10:52:09  profilanswer
 

Merci beaucoup olivthill !
 
Effectivement, ca marche, mais je ne connaissais pas le type Numeric... J'avais bien compris qu'il aimait pas les entiers !
 
 
Et oui, j'ai pris le code sur SqlZoo qui est assez pratique.. Je m'en cache pas :) mais apparament ilf faudrait qu'il change leur exemple :)
 
Donc merci.....  
Laurent


---------------
Quelque soit la taille de l' éléphant , il arrivera toujours à remplir une marmite avec ses couilles
n°1447176
MagicBuzz
Posté le 25-09-2006 à 15:26:40  profilanswer
 

Pour information, le type Numeric est un type permettant de stocker un nombre en utilisant un système de représentation non numérique en mémoire, mais basé sur une chaîne de caractères.
Il permet donc de stocker des nombres immenses (entre 38 et 40 chiffres selon le SGBD).
Il est donc particulièrement adapté aux clés (avec le type GUID qui n'est supporté que par un nombre limité de SGBD).
 
Le défaut principal du type Numeric (ou Decimal) c'est qu'à cause de sa représentation non numérique, les calculs effectués dessus sont bien plus lents qu'avec un type entier ou float. Pour un ID ce n'est pas dérangeant, puisqu'on fait rarement des calculs sur des identifiants. Deplus, grace à sa précision exacte pour les nombres à virgule, il sera préféré pour tous les champs "financiers" dans une base, afin de pouvoir effectuer des calculs sans problèmes d'arrondis du genre : 2 * 2 = 3.999999999997 qu'on aurait avec float (ici, on s'en fout un peu, je m'écarte du sujet ;))


Message édité par MagicBuzz le 25-09-2006 à 15:27:03

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Sybase, Auto increment

 

Sujets relatifs
Tri auto de tableau exceldate auto/ mysql
Copier des fichiers sur detection auto clé USB ?[Access] Empêcher l'enregistrement auto sur un formulaire de saisie
Verification de la presence d'un fichier -> increment de 1 si vrai[Hibernate ] récup requête SQL texte auto générée
Clavier AutoExécution procédure stockée sur Sybase en Java
Quelque chose comme CGI:IRC mais qui se connect autoGénération d'image et update bdd - Pb incrément
Plus de sujets relatifs à : Sybase, Auto increment


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR