亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以在MySql中使用函數作為默認值嗎?

我可以在MySql中使用函數作為默認值嗎?

DIEA 2019-10-28 16:53:14
我想做這樣的事情:create table app_users(    app_user_id smallint(6) not null auto_increment primary key,    api_key     char(36) not null default uuid());但是,這會導致錯誤,是否可以在mysql中為默認值調用函數?謝謝。
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

如前所述,您不能。


如果要模擬此行為,可以按以下方式使用觸發器:


CREATE TRIGGER before_insert_app_users

BEFORE INSERT ON app_users

FOR EACH ROW

  IF new.uuid IS NULL

  THEN

    SET new.uuid = uuid();

  END IF;

您仍然必須更新以前存在的行,如下所示:


UPDATE app_users SET uuid = (SELECT uuid());


查看完整回答
反對 回復 2019-10-28
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

從mysql v8.0.13開始,可以使用表達式作為字段的默認值:


DEFAULT子句中指定的默認值可以是文字常量或表達式。除一個例外,將表達式默認值括在括號內,以將其與文字常量默認值區分開。


CREATE TABLE t1 (

  uuid_field     VARCHAR(32) DEFAULT (uuid()),

  binary_uuid    BINARY(16)  DEFAULT (UUID_TO_BIN(UUID()))

);


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 3490 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號