IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Créer un identifiant dans toutes mes tables [Fait]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Par défaut [SQL] Créer un identifiant dans toutes mes tables
    Bonsoir,

    J'ai un script php qui me créer une database, et pour ce qui est des tables elle sont recupérer d'une application qui les converti dans EasyPhp 1.8 ).
    Le problème c'est que les tables non pas de clé primaire, quel est la syntaxe en sql pour qu'il me fasse une clé primaire pour chaque table qu'il trouve dans la Database, et que si cette clé existe il ne fait rien ??

    Merci à vous pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 136
    Par défaut
    en SQL :
    ALTER TABLE taTABLE ADD PRIMARY KEY (tonID);

  3. #3
    Membre éclairé
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Par défaut
    Merci à vous pour votre réponse.
    J'ai créer un petit script php qui m 'affiche les tables trouvées dans ma DB, ce que je voudrais maitenant c'est qu'il me rajoute pour chaque table un champ par ex : ID_CODE.

    Pouvez vous m'aider ?
    Merci à vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?
     
    $dbname = 'MyDataBase';
     
    if (!mysql_connect('localhost', 'root', '')) {
       echo 'Impossible de se connecter à MySQL';
       exit;
    }
     
    $sql = "SHOW TABLES FROM $dbname";
    $result = mysql_query($sql);
     
    if (!$result) {
       echo "Erreur DB, impossible de lister les tables\n";
       echo 'Erreur MySQL : ' . mysql_error();
       exit;
    }
     
    while ($row = mysql_fetch_row($result)) {
       echo "Table : {$row[0]}\n";
    }
     
    mysql_free_result($result);
    ?>

  4. #4
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    a moins de programmer une petite procédure PL/SQL qui met a jour toutes les tables issue de ta requete, tu va être obliger de faire tes ALTER TABLE sur chaqu'une de tes tables.

  5. #5
    Membre éclairé
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Par défaut
    Bonsoir,

    Comment dois je faire cela ?

    PS : suis encore débutant

    Merci à vous pour votre aide.
    Bonne soirée.

  6. #6
    Membre Expert

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Par défaut
    regarde du coté de : http://barlatier.developpez.com/csha...stockee/cours/
    http://sheikyerbouti.developpez.com/...e=Chap1#L1.2.1

    Ton but serait d'abord de stocker le résultat de la requère récupérent la liste de tes tables sur lesquelles tu dois faire ton alter table dans un CURSOR, puis au parcour de ton cursor effectuer ton ALTER TABLE.

  7. #7
    Membre éclairé
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Par défaut
    Il y à pas moyen de simplement de le faire dans ma boucle sur toutes les tables qu'il à trouvé ?

    Enfaite ce que je veus faire c'est créer un ID ( clé primaire ) pour chaque table trouvée dans ma DB vu que mon programme qui convertit ne le fais pas.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 136
    Par défaut
    Citation Envoyé par cdevl32 Voir le message
    Bonsoir,

    Comment dois je faire cela ?

    PS : suis encore débutant

    Merci à vous pour votre aide.
    Bonne soirée.
    oui c'est tout a fait possible
    pas besoin de procédure stocké, juste du sql executé avec php
    je n'ai pas le temps de te la programmé mais c'est pas bien dur

    du dois l'écrire dans cette boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = mysql_fetch_row($result)) {
       echo "Table : {$row[0]}\n";
    }
    code pour ajouter un champ à une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table alter table authors ADD au_photo Varchar(100) NULL

  9. #9
    Membre éclairé
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Par défaut
    Bonjour,

    Ok sa fonctionne, par contre comment faire pour tester que si dans ma table l 'ID existe déjà il ne fait rien ?
    J'ai essayer avec IF NOT EXISTS juste avant `clients`mais cela ne fonctionne pas .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql = 'ALTER TABLE `clients` ADD `ID` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST'; 
    mysql_query($sql) or die ('Erreur :'.mysql_error());

  10. #10
    Membre éclairé
    Inscrit en
    Août 2007
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 416
    Par défaut
    Merci à vous j'ai suivi vos conseil sa fonctionne

    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer un champ dans toutes mes tables.
    Par tombabibel dans le forum MySQL
    Réponses: 2
    Dernier message: 30/10/2008, 13h55
  2. [SQL Server] toutes mes tables se créent en dbo
    Par Tinfolley dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 23/03/2008, 19h41
  3. [SQL] Faire un DROP de toutes mes tables
    Par emmy99 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/03/2008, 13h25
  4. [MySQL] mettre toutes mes tables dans un select
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 14/03/2007, 11h39
  5. [SQL] Tout supprimé dans tout mes champ tout remettre à 0
    Par snakejl dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/06/2006, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo