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() );
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();
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!