开发者社区> 问答> 正文

mysql模式,varchar类型字段,不支持默认值用函数吗? 比如这样,报错了。

mysql模式,varchar类型字段,不支持默认值用函数吗? 比如这样,报错了。

create table zzz_test_0403 ( ID varchar(64) default uuid() not null )

展开
收起
真的很搞笑 2023-04-12 10:17:51 362 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    在MySQL中,VARCHAR类型字段是不支持使用函数作为默认值的,只能使用常量或NULL作为默认值。

    如果想使用函数设置默认值,您可以考虑使用触发器来实现。在CREATE TABLE语句中,您可以创建一个名为zzz_test_0403的空表,然后使用CREATE TRIGGER语句在该表中创建一个触发器:

    CREATE TRIGGER trigger_zzz_test_0403 BEFORE INSERT ON zzz_test_0403 FOR EACH ROW SET NEW.ID = UUID(); 这将在向表中插入数据之前给ID字段设置uuid()函数的返回值。

    2023-04-18 10:31:25
    赞同 展开评论 打赏
  • 对,不支持,因为建表的默认值是个静态计算生成的,如果你想实现类似效果,可以写触发器,加个if判断,如果为空,则将生成的uuid给id

    2023-04-12 14:00:02
    赞同 展开评论 打赏
  • d4ccbd9f6b0ff9dd786e2646b6a98300.png ,此回答整理自钉群“[社区]技术答疑群OceanBase”

    2023-04-12 12:45:59
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像