Db.save 跨库保存小技巧

我们在使用 Db.save() 方法进行保存数据的时候,有时候我们会遇到跨数据库进行保存,比如:我连接的是master 数据库,但是我又想保存到 slave 数据库中的某个表,此时如果不切换数据源,就无法保存,而我们又不想新建一个数据库连接。如果是mysql ,那么你可以这样操作。在数据库后面与表前面添加“  ` ”符号,这样就可以实现跨库保存,而又不需要新建连接。比如:

Db.batchSave("slave`.`t_dws_dtsj_xqms_swjc_ls", records, records.size());


其他数据库也同理可得。跟进生成的sql 来进行调整符号。

评论区

SamUU

2020-11-04 14:58

dblink?

JFinal

2020-11-04 15:39

这方法挺独特,第一次见,超赞

杜福忠

2020-11-04 16:19

PS:master数据库登录的那个账户,也必须能操作slave 数据库权限,或者说登录的账户能操作这两个库的时候, 才可以使用库名前缀。

HingLo

2020-11-05 10:01

HingLo

2020-11-05 10:04

@SamUU 不是dblink,就是同服务器。加数据库前缀进行操作

北流家园网

2020-11-05 10:14

这个不是新鲜事了,如果权限允许,跨库是允许,在Oracle中更是频繁。

HingLo

2020-11-05 10:29

@北流家园网 跨库不是新鲜事。这儿主要讲Db.save()与Db.update()方法 怎么来跨库操作。

杜福忠

2020-11-05 16:39

@HingLo 确实不是新鲜事,每次从Navicat复制SQL到代码中时,就带着库名,还得手动去掉2333,但是你是社区第一个分享这个操作的人~ 这就很赞了呀

SuperEric

2021-03-05 00:56

👍👍👍👍`.` 必须得带上这前后的`