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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  clé primaire en SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

clé primaire en SQL

n°1617261
alkashee
Si c'est pas beau ca !
Posté le 01-10-2007 à 10:26:21  profilanswer
 

Bonjour,
 
Alors voila mon problème: j'importe une feuille excel dans une base access pour faire des traitements dessus. jusque la tout va bien. Mon souhait serait de pouvoir rajouter une colonne de type NumAuto (ca j'y arrive) mais surtout de la mettre en clé primaire, le tout en instructions SQL car ca donnera une requête qui sera appelé par macro.
 
Voici ce que j'avais mis:
 
ALTER TABLE test  
    ADD COLUMN Num counter, PRIMARY KEY ("Num" );
 
Pour la première partie, il bronche pas mais c'est la partie primary key qui le fait grogner
Je suis sur que ca doit pas être bien méchant, mais mes cours de SQL sont loiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin (tout au fond à gauche) et je galère comme un débutant ^^ donc si une âme charitable pouvait m'aider, cela me serait bien utile :)
 
Merci d'avance !

mood
Publicité
Posté le 01-10-2007 à 10:26:21  profilanswer
 

n°1617267
alkashee
Si c'est pas beau ca !
Posté le 01-10-2007 à 10:34:41  profilanswer
 

Ah oui j'oubliais, voici le gentil message d'erreur que ca me met quand je veux lancer la requête:
 
"Définition de champ "Num" non valide dans la définition de l'index ou de la relation"
 
Petite précision, je n'ai qu'une seule table dans ma base
 
Merki !

n°1617866
thierryR
J'aime les bretzels
Posté le 02-10-2007 à 14:40:17  profilanswer
 

Ben moi j'importe ma table, puis je crée ensuite la clé primaire.
Elle genere toute seule les index.
C'est tout.


Message édité par thierryR le 02-10-2007 à 14:40:39

---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
n°1617904
alkashee
Si c'est pas beau ca !
Posté le 02-10-2007 à 15:17:49  profilanswer
 

Oui certe, mais moi je veux le faire en SQL ^_^'
Le faire a la main, je sais faire, y a pas de souci, par contre l'automatiser en SQL c'est une autre paire de manches, et c'est justement la dessus que je sèche... :)

n°1617907
MagicBuzz
Posté le 02-10-2007 à 15:20:54  profilanswer
 

ajoute ton champs.
 
rempli-le.
 
et seulement après, met-le en pk...
 
là ça ne peux pas marcher : tu ajoutes un champ (donc vide par défaut, ou avec une valeur par défaut identique pour toutes les lignes) et t'en fait une pk (qui n'accepte ni les valeurs vides ni les doublons...)
 
ça peut pas marcher :spamafote:

n°1618181
alkashee
Si c'est pas beau ca !
Posté le 03-10-2007 à 08:07:27  profilanswer
 

Le champ n'est pas vide puisqu'il s'agit d'un champ type NumAuto (donc quand je défini son type, il remplit automatiquement toutes les lignes correspondant à chaque enregistrement). Mais une hypothèse me vient à l'idée; peut être faut il faire deux requêtes et non une pour qu'il le prenne en compte ?

n°1618182
thierryR
J'aime les bretzels
Posté le 03-10-2007 à 08:16:51  profilanswer
 

Si tu crée ta table vide avec une clé primaire
Tu importe ton autre table de dans en laissant à null ta clé.
Elle va s'incrémenté toute seule si tu l'as déclaré auto increment ......


---------------
Penguin online qui ne fait que des conneries, et qui aime ça. Membre du http://www.fonacon.net/
n°1618186
MagicBuzz
Posté le 03-10-2007 à 08:27:46  profilanswer
 

de tête un champ numauto quand tu le crées après la table, il est vide...
 
et c'est normal.
 
il va se remplir dans quel ordre sinon ? c'est pas au sgbd de choisir à ta place

n°1618269
alkashee
Si c'est pas beau ca !
Posté le 03-10-2007 à 10:58:23  profilanswer
 

@thierryR: Justement je crée pas ma table vide, c'est l'importation d'une feuille excel avec entête qui va créer ma table. Mais vu que ce sont des données, y a pas de colonne qui puisse faire office de clé primaire; d'où ma volonté de rajouter ensuite une colonne de type NumAuto qui est tout indiquée pour faire la clé primaire :)
 
 
@MagicBuzz: Le truc c'est qu'en faisant le test "à la main", c'est à dire en ajoutant la colonne à la main et en définissant le type en NumAuto, il est defini en 'incrément' et remplit les lignes de la table automatiquement. Donc je vois pas pourquoi ca serait pas pareil en SQL... Après qu'il y ai une commande ou une syntaxe précise à rentrer en SQL, je dis pas  :jap:  
 
Sachant que je veux que l'extraction et la mise en place de la clé primaire se fasse de manière automatisée puisque déclenché par une macro lancée par l'utilisateur  :bounce:


Message édité par alkashee le 03-10-2007 à 11:02:14
n°1620528
alkashee
Si c'est pas beau ca !
Posté le 08-10-2007 à 14:06:30  profilanswer
 

C'est bon j'ai trouvé, une vieille histoire de ";" au lieu de ","  :fou:


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

  clé primaire en SQL

 

Sujets relatifs
Requêtes SQL: fusion de lignes[RESOLU] - Probleme requete SQL - RETURN
SQL Server 2005 - INSERT multiples[SQL SERVER 2005] types numeriques, question existentielle
Requetes sur table SQL mais pas sur clef primaire ==> doublonsdefinir une clé primaire apres la creation d'une table, en SQL
Clés primaire et index (SQL Server 2000)URGENT MAJ cle primaire SQL et de tous les fichiers qui la contienne
SQL expert MAJ cle primaire et impact sur bdd (HELP!) urgentSQL serv - reconnaitre une clé primaire
Plus de sujets relatifs à : clé primaire en SQL


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