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

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

Mary-Kate Olsen
リリース: 2024-12-17 05:21:26
オリジナル
818 人が閲覧しました

Can MySQL Use Functions to Set Default Column Values?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート