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

Langage SQL Discussion :

aide pour decrypter creation d'une table


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut aide pour decrypter creation d'une table
    Bonjour ,

    j'ai recuperer ce code sql d'une creation de table, cependant je ne vois pas ou fait la reference au clé etrangere... normalement il y a un foreign key quelque part la je sais pas.
    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
    26
    27
    28
    29
    30
    31
    32
     
    CREATE TABLE `purchase_orders` (
      `id` char(36) NOT NULL,
      `related_invoice_id` varchar(50) default NULL,
      `supplier_id` varchar(50) default NULL,
      `supplier_contact_id` varchar(50) default NULL,
      `prefix` varchar(14) default NULL,
      `po_number` int(11) NOT NULL,
      `date_entered` datetime NOT NULL,
      `date_modified` datetime NOT NULL,
      `modified_user_id` char(36) NOT NULL default '',
      `assigned_user_id` char(36) default NULL,
      `created_by` char(36) default NULL,
      `deleted` tinyint(1) NOT NULL default '0',
      `cancelled` tinyint(1) NOT NULL default '0',
      `name` varchar(100) default NULL,
      `due_date` date NOT NULL,
      `currency_id` char(36) default NULL,
      `exchange_rate` double default NULL,
      `shipping_provider_id` char(36) default NULL,
      `description` text,
      `amount` double NOT NULL,
      `amount_usdollar` double default NULL,
      `amount_due` double NOT NULL,
      `amount_due_usdollar` double default NULL,
      `terms` varchar(25) NOT NULL,
      `tax_information` varchar(150) default NULL,
      `show_components` varchar(40) default '',
      PRIMARY KEY  (`id`),
      KEY `idx_purchase_orders_number` (`po_number`),
      KEY `idx_purchase_orders_name` (`name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

  2. #2
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    http://doc.domainepublic.net/mysql/d...ate-table.html
    http://dev.mysql.com/doc/refman/5.0/...ate-table.html
    Les cours qui sont là peuvent t'aider.
    Je sais que l'on peut définir des contraintes d'integrité sur les clés étrangères, après j'avoue que je sais pas trop comment les déclarer dans la structure de la base. Peut être KEY...

    bon dev'
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut re
    oui peut etre key me c'est bien le mot clé que je connais pas.....

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    MyISAM ne gère pas les clés étrangères

  5. #5
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    merci vmolines, je savais qu'il y avait une histoire comme ça
    #
    En MySQL version 3.23.44 et plus récent, les tables InnoDB supportent la vérification de clé étrangères. See Chapitre 15, Le moteur de tables InnoDB. Notez que la syntaxe des clés étrangères FOREIGN KEY de InnoDB est plus restrictive que la syntaxe présentée ci-dessus. InnoDB ne permet pas la spécification d'un index_name, et les colonnes de la table référencée doivent être explicitement nommées. Depuis la version 4.0.8, InnoDB supporte les clauses ON DELETE et ON UPDATE avec les clés étrangères. Voyez le manuel InnoDB pour la syntaxe précise. Section 15.7.4, « Contraintes de clés étrangères FOREIGN KEY ».
    Pour les autres types de tables, le serveur MySQL n'analyse pas les clauses FOREIGN KEY, CHECK et REFERENCES dans les commandes CREATE TABLE, et aucune action n'est réalisée. See Section 1.5.5.5, « Les clés étrangères ».
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut re
    en gros vous me dites que je peut pas voir les clé etrangere...

  7. #7
    Membre éclairé Avatar de tigunn
    Homme Profil pro
    Développeur de bug
    Inscrit en
    Janvier 2003
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de bug

    Informations forums :
    Inscription : Janvier 2003
    Messages : 608
    Points : 658
    Points
    658
    Par défaut
    tu ne peut pas définir de clé étrangère avec MyIsam.

    mais pourquoi tenait tu tellement a les définir dans la structure de ta table?
    Le monde se divise en deux: ceux qui utilisent le tag et les autres.

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Citation Envoyé par zprr21
    en gros vous me dites que je peut pas voir les clé etrangere...
    C'est exactement ça.

    Cependant, les indexes que tu trouveras dans tes scripts te permettront de retrouver plus facilement les clés étrangères qui auraient été modélisées, une clé étrangère étant systématiquement indéxée. Par contre, tout index que tu trouveras ne seras pas systématiquement clé étrangère dans la mesure un champ peut être indexé pour un besoin de tri ou recherche sur cette table uniquement.

    Bon courage

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Citation Envoyé par tigunn
    tu ne peut pas définir de clé étrangère avec MyIsam.

    mais pourquoi tenait tu tellement a les définir dans la structure de ta table?
    Intégrité référentielle, lisibilité des liens entre les tables ici en l'occurence.

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 27
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par vmolines
    Intégrité référentielle, lisibilité des liens entre les tables ici en l'occurence.
    exactement j'aurai pas dis mieux, bon ben merci de l'aide je dois me taper 174 tables comme cela....

Discussions similaires

  1. une petite aide pour la creation d un formulaire
    Par grpoirier dans le forum IHM
    Réponses: 1
    Dernier message: 03/12/2010, 14h05
  2. Une aide pour la creation d'GUI
    Par Cool Raoul dans le forum Débuter
    Réponses: 4
    Dernier message: 13/03/2010, 21h07
  3. Réponses: 1
    Dernier message: 30/06/2009, 09h55
  4. Pb pour la creation d'une bd
    Par Lebowsky dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/08/2004, 14h13
  5. changement de type pour un champ dans une table
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 23/02/2004, 15h26

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