Maison > base de données > tutoriel mysql > le corps du texte

Comment attribuer des noms d'utilisateur avec des valeurs de clé primaire concaténées dans MySQL ?

Susan Sarandon
Libérer: 2024-11-09 21:58:02
original
691 Les gens l'ont consulté

How to Assign Usernames with Concatenated Primary Key Values in MySQL?

Insertion de données avec une chaîne concaténée et une clé primaire

Les insertions dans une table MySQL impliquent l'attribution de valeurs à des colonnes, incluant souvent une valeur primaire auto-incrémentée clé. Cependant, on peut parfois souhaiter concaténer une chaîne avec la clé primaire lors de l'insertion, comme dans le cas de l'attribution de noms d'utilisateur en tant que "utilisateur" suivi de la valeur de la clé primaire.

Défi :

La table user contient plusieurs colonnes, dont une clé primaire "id" auto-incrémentée et une colonne "nom d'utilisateur". L'intention est d'attribuer automatiquement des noms d'utilisateur en tant qu'« utilisateur » suivis des valeurs de clé primaire respectives.

Approche :

  • L'utilisation d'une seule instruction SQL est impossible car la valeur de la clé primaire n'est générée qu'après l'exécution du déclencheur "BEFORE INSERT", et la modification ultérieure du "username" est interdite dans "AFTER INSERT" déclencheur.
  • Une solution de contournement viable consiste à effectuer d'abord l'insertion, puis à exécuter une mise à jour immédiate pour concaténer la valeur de la clé primaire avec la chaîne.

Alternative :

  • Si la clé primaire n'est pas auto-incrémentée mais spécifiée, l'opération de concaténation peut être effectuée directement dans le code PHP avant de passer valeurs en tant que paramètres.

Remarque :

  • Les colonnes générées par MySQL 5.7 ne peuvent pas prendre en charge ce scénario. Une tentative de création d'une colonne générée faisant référence à une colonne auto-incrémentée entraîne l'erreur "La colonne générée 'nom d'utilisateur' ne peut pas faire référence à une colonne à incrémentation automatique."

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