Maison > base de données > tutoriel mysql > MySQL peut-il utiliser des fonctions pour définir les valeurs de colonne par défaut ?

MySQL peut-il utiliser des fonctions pour définir les valeurs de colonne par défaut ?

Mary-Kate Olsen
Libérer: 2024-12-17 05:21:26
original
815 Les gens l'ont consulté

Can MySQL Use Functions to Set Default Column Values?

Attribuer des valeurs par défaut avec des fonctions dans MySQL

Dans MySQL, les valeurs par défaut des colonnes de table sont généralement définies comme des valeurs statiques, telles que des constantes ou expressions. Cependant, certains utilisateurs peuvent rencontrer des cas où ils souhaitent attribuer des valeurs par défaut à l'aide de fonctions. Cette question explore si une telle fonctionnalité est prise en charge dans MySQL.

Question :

MySQL peut-il attribuer des valeurs de colonne par défaut à l'aide de fonctions ? Par exemple, l'instruction suivante peut-elle être exécutée avec succès ?

create table app_users
(
    app_user_id smallint(6) not null auto_increment primary key,
    api_key     char(36) not null default uuid()
);
Copier après la connexion

Réponse :

Non, MySQL ne permet pas d'attribuer des valeurs de colonne par défaut à l'aide de fonctions. Toute tentative en ce sens entraînera une erreur.

Solution :

Bien que MySQL lui-même ne prenne pas en charge les valeurs par défaut basées sur les fonctions, une solution de contournement peut être obtenue à l'aide de déclencheurs. Voici un exemple de déclencheur qui attribue une valeur UUID par défaut à la colonne api_key avant d'insérer une nouvelle ligne dans la table app_users :

CREATE TRIGGER before_insert_app_users
  BEFORE INSERT ON app_users 
  FOR EACH ROW
  SET new.api_key = uuid();
Copier après la connexion

Ce déclencheur générera et attribuera automatiquement un nouvel UUID à la colonne api_key pour chaque nouveau ligne insérée dans la table app_users.

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