MySQL の関数を使用したデフォルト値の割り当て
MySQL では、テーブル列のデフォルト値は通常、定数や定数などの静的な値として設定されます。表現。ただし、一部のユーザーは、関数を使用してデフォルト値を割り当てたい場合があります。この質問では、そのような機能が MySQL でサポートされているかどうかを調べます。
質問:
MySQL は関数を使用してデフォルトのカラム値を割り当てることができますか?たとえば、次のステートメントは正常に実行できますか?
create table app_users ( app_user_id smallint(6) not null auto_increment primary key, api_key char(36) not null default uuid() );
答え:
いいえ、MySQL では関数を使用してデフォルトのカラム値を割り当てることはできません。そうしようとすると、エラーが発生します。
解決策:
MySQL 自体は関数ベースのデフォルト値をサポートしていませんが、トリガーを使用して回避策を実現できます。これは、app_users テーブルに新しい行を挿入する前に、デフォルトの UUID 値を api_key 列に割り当てるトリガーの例です。
CREATE TRIGGER before_insert_app_users BEFORE INSERT ON app_users FOR EACH ROW SET new.api_key = uuid();
このトリガーは、新しい行ごとに新しい UUID を自動的に生成し、api_key 列に割り当てます。 app_users テーブルに行が挿入されました。
以上がMySQL は関数を使用してデフォルトのカラム値を設定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。