MySQL 8.0.23中varchar列设置USER()等函数为默认值失败求助
解决MySQL 8.0.23中设置USER()为varchar字段默认值的问题
MySQL 8.0.19及以后版本支持将函数作为非时间类型字段的默认值,但需将函数包裹在括号内。你当前的问题在于未给函数添加括号,修改后的正确建表语句如下:
CREATE TABLE `department` ( `department_key` bigint NOT NULL AUTO_INCREMENT, `name_of` varchar(256) NOT NULL, `inserted_by` varchar(64) NOT NULL DEFAULT (USER()), `create_date_off_set` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), CONSTRAINT `PK_department` PRIMARY KEY (`department_key`) );
USER()、CURRENT_USER()函数返回格式为用户名@主机名,要确保inserted_by字段长度(此处设为64)足够容纳返回值,避免插入时因长度不足报错。CURRENT_USER是CURRENT_USER()的同义词,同样可写成DEFAULT (CURRENT_USER)。
内容的提问来源于stack exchange,提问作者granadaCoder
相关产品推荐
相关产品推荐

