0

我想通过函数 uuid() 将 uuid 值设置为“id”字段。而且我不想用作触发器。

CREATE TABLE `test` (
`id` VARCHAR(36) NOT NULL DEFAULT uuid(),
`username` VARCHAR(250) NULL DEFAULT NULL,
`values` VARCHAR(250) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB;
4

1 回答 1

1

规范对此非常明确: http: //dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

除了一个例外,默认值必须是一个常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为 NOW() 或 CURRENT_DATE 等函数的值。例外情况是您可以将 CURRENT_TIMESTAMP 指定为 TIMESTAMP 列的默认值。

因此,您要么使用触发器,预先计算值(例如在 php 中),要么使用其他数据库,例如 oracle 可能支持它。

于 2013-07-11T09:12:51.577 回答