You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:55:19