Maison > base de données > tutoriel mysql > Comment puis-je créer une table relationnelle avec deux colonnes distinctes à incrémentation automatique ?

Comment puis-je créer une table relationnelle avec deux colonnes distinctes à incrémentation automatique ?

Mary-Kate Olsen
Libérer: 2025-01-06 08:16:40
original
286 Les gens l'ont consulté

How Can I Create a Relational Table with Two Separate Auto-Incrementing Columns?

SQL : Création d'une table relationnelle avec deux incréments automatiques distincts

Problème :

Vous souhaitez créer une table relationnelle avec deux colonnes auto-incrémentées, mais vous rencontrez un erreur.

Explication :

Votre tentative d'établir une table relationnelle avec plusieurs colonnes auto-incrémentées est basée sur une mauvaise compréhension du concept de clé primaire.

Clé Concepts :

  • Clé primaire : Un identifiant unique qui identifie chaque ligne d'un tableau.
  • Incrémentation automatique : Une fonctionnalité qui génère automatiquement une valeur unique pour le spécifié colonne.

Erreur :

  • Attribution de la colonne ID comme clé primaire.
  • En supposant que la colonne ID fournit une ligne unicité, ce qu'il fait non.

Résolution :

  1. Supprimer les champs ID superflus : Supprimer les colonnes ID des deux tables car elles sont inutiles pour l'identification des lignes.
  2. Déclarer l'unicité des lignes : Appliquer l'unicité des lignes en créant des contraintes uniques sur les clés dérivées des données, telles qu'une combinaison de champs de nom. Par exemple :
CREATE TABLE relational_table (
    name_first CHAR(30), 
    name_last  CHAR(30),
    CONSTRAINT PK
        PRIMARY KEY ( name_last, name_first )
    )
Copier après la connexion
  1. Créer une table associative : Pour établir une relation entre les deux tables, créez une table associative qui utilise les clés primaires des deux tables comme la clé primaire. Par exemple :
CREATE TABLE user_sport (
    user_name  CHAR(16) NOT NULL,   -- FK
    sport_code CHAR(4)  NOT NULL,   -- FK
    start_date DATE     NOT NULL,

    CONSTRAINT PK 
        PRIMARY KEY ( user_name, sport_code )
    )
Copier après la connexion
  1. Supprimer les instructions d'incrémentation automatique : L'incrémentation automatique n'est pas nécessaire pour les tables relationnelles et peut prêter à confusion.

Avantages de la suppression :

  • Applique unicité des lignes.
  • Améliore l'intégrité des données.
  • Élimine les enregistrements en double.
  • Simplifie les relations de clé étrangère.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal