我想通过函数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;
答案 0 :(得分:1)
规范对此非常明确:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html
除了一个例外,默认值必须是常量;它不能是一个功能或表达。这意味着,例如,您不能将日期列的默认值设置为函数的值,例如NOW()或CURRENT_DATE。例外情况是您可以将CURRENT_TIMESTAMP指定为TIMESTAMP列的默认值。
所以要么你使用触发器,事先计算值(例如在php中),要么你使用其他一些数据库,例如: oracle可能会支持它。