前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TDSQL-MYSQL版 单表如何使用存储过程

TDSQL-MYSQL版 单表如何使用存储过程

原创
作者头像
大大刺猬
修改2021-04-23 17:54:18
3.7K0
修改2021-04-23 17:54:18
举报
文章被收录于专栏:大大刺猬

tdsql支持3种表:

单表

表结构与数据只存在于第一个set上. 使用和普通mysql完全一样.

分表

对分表键(shardkey)做murmurHashCodeAndMod运算, 数据均匀分布在每个set上(这个说法其实不严谨)

广播表

每个set上都有完整的表数据. 做join的时候方便.

语法: https://cloud.tencent.com/document/product/557/8767

官方说tdsql-mysql不支持存储过程

看起来很多特性都不支持...
看起来很多特性都不支持...

对分表创建存储过程:

会报错Shard table do not support create_or_replace view
会报错Shard table do not support create_or_replace view

对单表创建存储过程

其实实际使用单表的场景不多的, 也不建议使用单表.

可以创建成功

创建存储过程成功
创建存储过程成功

但是无法直接调用存储过程

网关(proxy)不支持直接调用, 为啥不支持呢?

不支持call
不支持call

绕过网关调用存储过程

网关(proxy)不支持, 但是底层是mysql, mysql是支持的啊, 所以我们可以直接到set上去执行.

其实这一点可以官方改进的.

查看后台set信息

1. sql透传查看

2. 控制台点鼠标

然后把sql发往对应的set上执行即可(单表是第一个set).

这样是可以的, 但是不建议这么做.

没想到吧, 透传sql还能用来这么干
没想到吧, 透传sql还能用来这么干

思考一下: 如果我先创建存储过程, 再创建分表, 再透传sql调用存储过程行不行?

答案:不行

对广播表创建存储过程

也是不支持的,

其实也可以使用透传sql, 每个set都创建相同的存储过程, 调用的时候透传到每个set上执行.

结论:

tdsql-mysql版不支持创建存储过程(单表除外), 不支持调用存储过程.

但是单表可以使用sql透传调用存储过程.

题外话:

恭喜自己获得数据库交付运维专家-腾讯云TDSQL(MySQL版)证书^_^

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tdsql支持3种表:
    • 单表
      • 分表
        • 广播表
        • 对分表创建存储过程:
        • 对单表创建存储过程
          • 可以创建成功
            • 但是无法直接调用存储过程
              • 绕过网关调用存储过程
                • 查看后台set信息
                • 然后把sql发往对应的set上执行即可(单表是第一个set).
            • 对广播表创建存储过程
            • 结论:
            相关产品与服务
            TDSQL-C MySQL 版
            TDSQL-C MySQL 版(TDSQL-C for MySQL)是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL,为用户提供极致弹性、高性能、高可用、高可靠、安全的数据库服务。实现超百万 QPS 的高吞吐、PB 级海量分布式智能存储、Serverless 秒级伸缩,助力企业加速完成数字化转型。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档