如何在mysql中使用函数uuid()设置默认值?

时间:2013-07-11 09:08:33

标签: mysql

我想通过函数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;

1 个答案:

答案 0 :(得分:1)

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

  

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

所以要么你使用触发器,事先计算值(例如在php中),要么你使用其他一些数据库,例如: oracle可能会支持它。