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
228 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!

source:php.cn
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