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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Question qui doit êter facile à répondre.. j'espère

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question qui doit êter facile à répondre.. j'espère

n°329717
Elphin
Posté le 11-03-2003 à 17:26:23  profilanswer
 

Très simple... Comment on fait pour réinitialiser un champs auto-increment dans Access et Mysql? Sans défaire et refaire la table...
 
Merci

mood
Publicité
Posté le 11-03-2003 à 17:26:23  profilanswer
 

n°329722
tomlameche
Et pourquoi pas ?
Posté le 11-03-2003 à 17:35:06  profilanswer
 

Elphin a écrit :

Très simple... Comment on fait pour réinitialiser un champs auto-increment dans Access et Mysql? Sans défaire et refaire la table...
 
Merci


Ben sur MySQL il se réinitialise tout seul quand la table est vide de toute façon. Le principe est de prendre à chaque fois le max + 1. Je vois pas trop ce que tu veux en fait ?

n°329741
antp
Super Administrateur
Champion des excuses bidons
Posté le 11-03-2003 à 17:46:20  profilanswer
 

tomlameche a écrit :

Le principe est de prendre à chaque fois le max + 1.  


 
c'est pas le cas de tous les SGBD
Access par ex c'est dernier ajouté + 1, même si le dernier ajouté n'existe plus...
Je crois que MS SQL Server fait de même (et on ne peut pas forcer la valeur du champ, contrairement à MySQL)


Message édité par antp le 11-03-2003 à 17:47:10

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°329744
tomlameche
Et pourquoi pas ?
Posté le 11-03-2003 à 17:50:15  profilanswer
 

antp a écrit :


 
c'est pas le cas de tous les SGBD
Access par ex c'est dernier ajouté + 1, même si le dernier ajouté n'existe plus...
Je crois que MS SQL Server fait de même (et on ne peut pas forcer la valeur du champ, contrairement à MySQL)


Ah oui, mais là je me bornai à MySQL. En fait, je pense que le meilleurs des principes est celui d'Oracle : tu te débrouille comme tu veux avec des séquences, voir des trigger pour les plus dingues, mais aucun champ ne se calcul tout seul. Au moins là, tu reste maitre de tes enregistrements !

n°329746
nraynaud
lol
Posté le 11-03-2003 à 17:52:15  profilanswer
 

antp a écrit :


 
c'est pas le cas de tous les SGBD
Access par ex c'est dernier ajouté + 1, même si le dernier ajouté n'existe plus...
Je crois que MS SQL Server fait de même (et on ne peut pas forcer la valeur du champ, contrairement à MySQL)


 
on peut raisonablement espérer que MS SQL serveur utilise un trigger et une séquence. Donc c'est la séquence qu'il faut réinitialiser

n°333938
Elphin
Posté le 15-03-2003 à 01:29:55  profilanswer
 

Donc donc sous access.. le plus simple et bien de détruire et refaire la table... c poche! :D

n°333947
HappyHarry
Posté le 15-03-2003 à 01:38:19  profilanswer
 

faux on peut forcer l'insertion de clé auto increment dans MS SQL
 
SET IDENTITY_INSERT _table_ ON


Message édité par HappyHarry le 15-03-2003 à 01:38:50
n°333975
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-03-2003 à 10:01:38  profilanswer
 

Ouais mais il me semble que ça ne marchait pas si la table n'était pas vide [:figti] Enfin je me souviens que j'avais eu des problèmes  avec ce truc.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°334043
MagicBuzz
Posté le 15-03-2003 à 13:59:50  profilanswer
 

Non non, on peut bien en effet forcer la valeur d'un auto-incrément dans MSSQL.
 
Par contre, il utilise une séquence "invisible", c'est à dire que chaque nouvel ID sera plus grand que celui précédement généré (et non inserré), et si on droppe tout, ça ne sera pas réinitialisé.
 
Le seul moyen de réinitialiser un auto_incrément sous MSSQL, c'est de faire un alter sur la table pour virer l'auto-incrément, puis refaire un alter pour le remettre. Mais il faut mieu mettre la base down pendant ce temps, parceque sinon ca va faire proutch :)

n°334054
drasche
Posté le 15-03-2003 à 14:16:01  profilanswer
 

Elphin a écrit :

Donc donc sous access.. le plus simple et bien de détruire et refaire la table... c poche! :D


Sous Access tu fais un compactage et l'auto-increment est réinitialisé à la valeur la plus basse possible: donc si la table en question est vide, ce sera zéro.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)

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

  Question qui doit êter facile à répondre.. j'espère

 

Sujets relatifs
une question de newbiebesoin d'aide je sui un debutant (question simple il me semble)
petite questionQuestion bête on peut crée une liste comme cela
[php] petite question qui me turlupine...question sur les liens
[python] Question conne du jourquestion sur conception objet
Question DirectX :)[php] question de chemin relatif
Plus de sujets relatifs à : Question qui doit êter facile à répondre.. j'espère


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