YashanDB dblink 语法

# 使用说明
通过 dblink 操作远端数据库的表时,需满足如下要求:
Note:
在分布式部署中,操作远端表时采用列存,除下表所列数据类型要求外,还应遵循列存的数据类型支持范围。


在分布式部署中,无法对远端数据库的表进行 INSERT、UPDATE、DELETE、SEQUENCE、PROCEDURE 以及 FUNCTION 操作。
在使用 dblink 的场景下,不支持通过二阶段提交(Two-phase Commit)保证所有资源同时提交或回滚某个事务。
# 查询远端表
对远端表进行SELECT操作时,存在如下约束:
不能采用 table.column@dblink 形式。
单次最多查询 32 个远端表。
示例
# 插入远端表
对远端表进行INSERT操作时,存在如下约束:
不允许多表 INSERT。
不允许指定分区 INSERT。
不允许执行 INSERT DUPLICATE UPDATE 语句。
不允许执行 INSERT RETURN 语句。
INSERT SELECT 不支持 LOB 类型。
示例(单机、共享集群部署)
# 更新远端表
对远端表进行UPDATE操作时,存在如下约束:
filter 与更新本地数据库的对象的 filter 相比:
不能使用聚集函数。
不能使用窗口函数。
不能使用子查询。
不能使用序列。
不能使用自定义函数(包括 UPDATE SET 语句)。
不允许多表 UPDATE。
不允许指定分区 UPDATE。
示例(单机、共享集群部署)
# 删除远端表
对远端表进行DELETE操作时,存在如下约束:
filter 与删除本地数据库的对象的 filter 相比:
不能使用聚集函数。
不能使用窗口函数。
不能使用子查询。
不能使用序列。
不能使用自定义函数。
不允许多表 DELETE。
不允许指定分区 DELETE。
示例(单机、共享集群部署)
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/cf796812b65e57813ea674908】。文章转载请联系作者。
评论