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