mysql字段uuid,MySQL设置默认ID UUID

I'm trying to create tables in a database that has an id field that will populate the id with an UUID by default.

I tried something like:

CREATE TABLE FOO (

id CHAR(36) PRIMARY KEY DEFAULT uuid()

);

I greatly appreciate your assistance.

解决方案

MySQL as of 5.7 does not support using a function as the default value of a column.

The DEFAULT value clause in a data type specification indicates a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression.

The alternative would be to use a trigger to monitor the BEFORE INSERT of the desired table.

DELIMITER ;;

CREATE TRIGGER `foo_before_insert`

BEFORE INSERT ON `foo` FOR EACH ROW

BEGIN

IF new.id IS NULL THEN

SET new.id = uuid();

END IF;

END;;

DELIMITER ;

This will change the default value of an INSERT statement to the uuid() value, unless it has been explicitly defined.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值