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