Maison > base de données > tutoriel mysql > Les colonnes MySQL peuvent-elles utiliser des fonctions comme valeurs par défaut ?

Les colonnes MySQL peuvent-elles utiliser des fonctions comme valeurs par défaut ?

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

Can MySQL Columns Use Functions as Default Values?

Utilisation de fonctions comme valeurs par défaut dans MySQL

Dans MySQL, il n'est pas possible de spécifier une fonction comme valeur par défaut pour une colonne. Cela peut être frustrant, surtout si vous souhaitez utiliser une fonction pour générer une valeur unique pour une colonne, telle qu'un UUID.

Message d'erreur

Lorsque vous essayez pour créer une table avec une valeur par défaut qui est une fonction, vous recevrez un message d'erreur similaire au suivant :

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'uuid()' at line 10
Copier après la connexion

Solution alternative

Bien que vous ne puissiez pas utiliser une fonction directement comme valeur par défaut, il existe une solution de contournement qui implique l'utilisation d'un déclencheur. Un déclencheur est une procédure stockée qui est automatiquement exécutée lorsqu'un événement spécifique se produit, tel que l'insertion d'une nouvelle ligne dans une table. Voici un exemple de déclencheur qui peut être utilisé pour générer un UUID pour la colonne api_key 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 s'exécutera avant que de nouvelles lignes ne soient insérées dans la table app_users. Pour chaque ligne, il définira la valeur de la colonne api_key sur un UUID. Cela garantit que chaque nouvelle ligne a une valeur api_key unique.

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