Utilisation de fonctions pour les valeurs par défaut dans MySQL
Par défaut, MySQL ne prend pas en charge l'utilisation de fonctions comme valeurs par défaut pour les colonnes. Cela est évident dans l'exemple fourni :
create table app_users ( app_user_id smallint(6) not null auto_increment primary key, api_key char(36) not null default uuid() );
Cette requête entraînerait une erreur. Cependant, il existe des solutions de contournement pour obtenir des fonctionnalités similaires.
Utilisation de déclencheurs
Une façon de simuler l'utilisation de fonctions pour les valeurs par défaut consiste à utiliser des déclencheurs. Les déclencheurs sont des objets de base de données qui s'exécutent automatiquement lorsqu'un événement spécifique se produit, comme l'insertion de données dans une table. Voici un déclencheur qui peut être utilisé pour générer la valeur api_key :
CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW SET new.api_key = uuid();
Ce déclencheur est exécuté avant toute insertion dans la table app_users. Il définit la colonne api_key de la ligne nouvellement insérée sur une valeur UUID générée par la fonction uuid().
Limitations et considérations
Bien que l'utilisation de déclencheurs fournisse une solution de contournement, il a des limites :
Autres approches
Dans En plus des déclencheurs, il existe d'autres approches à considérer :
La meilleure approche dépendra des exigences et contraintes spécifiques de votre application.
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!