ホームページ >データベース >mysql チュートリアル >MySQL カラムは関数をデフォルト値として使用できますか?

MySQL カラムは関数をデフォルト値として使用できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-05 21:17:12859ブラウズ

Can MySQL Columns Use Functions as Default Values?

MySQL で関数をデフォルト値として使用する

MySQL では、カラムのデフォルト値として関数を指定することはできません。これは、特に UUID などの列の一意の値を生成する関数を使用したい場合にイライラする可能性があります。

エラー メッセージ

試行したとき関数であるデフォルト値を使用してテーブルを作成すると、次のようなエラー メッセージが表示されます。以下:

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

代替解決策

関数をデフォルト値として直接使用することはできませんが、トリガーを使用する回避策があります。トリガーは、テーブルへの新しい行の挿入など、特定のイベントが発生したときに自動的に実行されるストアド プロシージャです。 app_users テーブルの api_key 列の UUID を生成するために使用できるトリガーの例を次に示します。

CREATE TRIGGER before_insert_app_users
BEFORE INSERT ON app_users
FOR EACH ROW
SET new.api_key = uuid();

このトリガーは、新しい行が app_users テーブルに挿入される前に実行されます。各行について、api_key 列の値を UUID に設定します。これにより、すべての新しい行が一意の api_key 値を持つことが保証されます。

以上がMySQL カラムは関数をデフォルト値として使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。