Oracle 自动分表 请教 返回

SqlSugar
3 163

因为Oracle字段名长度不能超过30,那么在自动分表时会自动创建主键约束对象。

格式:PK_{表名}_20211201_{主键名}

也就是说{表名}+{主键名}长度不能超过17(大概)

由于字段有前缀,所以主键字段至少4位,那么留给表名的长度也就剩13位左右。

并且Oralce字段名默认都是大写的,阅读不便,所以表名前缀大概还有留出5位的样子。

最后留给真正的表名也就剩7位左右,一但超出,就报异常。

有些不够用,有什么解决办法吗?


比如:{year}{month}{day}这个部分能不能根据SplitType动态调整为4,6,8位?

    或:判断为Oracle时,自动截断30位,使其不抛异常?


或者有其他的办法?


热忱回答3

  • fate sta fate sta VIP0
    1个月前

    目前只能缩短表名,暂时没更好办法

    0 回复
  • fate sta fate sta VIP0
    1个月前

    数据库兼容级别在12.2以前,对象名长度只能低于31个字符, 在12.2以上,可以达到128个字符。

    0 回复
  • 老戴 老戴 VIP0
    1个月前

    @fate sta:感谢解答

    0 回复