首页 » Web前端 » phpmysql备注函数技巧_Kettle案例分享表和字段的备注信息同步从MySQL到Pgsql

phpmysql备注函数技巧_Kettle案例分享表和字段的备注信息同步从MySQL到Pgsql

duote123 2024-12-12 0

扫一扫用手机浏览

文章目录 [+]

那么,在进行跨库操作时,如何同步表和字段的备注信息呢,本文以从MySQL库到Pgsql库同步为例进行分享,利用的工具为Kettle。

一、表备注信息同步操作思路

1、获取须要同步备注信息的表名称;2、根据某一个表名称,从原数据库查询表备注信息;3、天生表备注信息实行脚本,并存入单独的表中;4、循环实行第2、3步骤,遍历所有表名称。

phpmysql备注函数技巧_Kettle案例分享表和字段的备注信息同步从MySQL到Pgsql

代码准备

1、获取表名称

phpmysql备注函数技巧_Kettle案例分享表和字段的备注信息同步从MySQL到Pgsql
(图片来自网络侵删)

下面代码的功能是从目标数据库查询表名称,个中:"pgsql_schema"是命名参数,指PgSQL目标库的目标模式。

由于ods层的表,都在表名称前添加了"ods_",以是须要通过"substring(table_name,5)"操作找到原始的表名称。

select substring(table_name,5) mysql_table_namefrom information_schema.tableswhere table_schema = '${pgsql_schema}'and table_name like 'ods_%'

这篇文章先容了命名参数的详细利用方法,须要请点击查看:参数先容

2、获取表最大长度

在获取到原始表名称的根本上,统计这些表名称的最大长度。
这是由于PgSQL和MySQL所许可的表名称最大长度不一样,有可能存在表名称截取的情形。

select max(length(substring(table_name,5))) original_table_name_max_longfrom information_schema.tableswhere table_schema = '${pgsql_schema}'and table_name like 'ods_%'

3、获取表备注信息

根据获取到的原始表名称,从原始数据库查询表备注信息,个中:"mysql_schema"是命名参数,指MySQL目标库的目标模式;"MYSQL_TABLE_NAME"是变量,指原始表名称。

SELECTtable_commentFROM information_schema.TABLESWHERE table_schema = '${mysql_schema}'AND substring(table_name,1,${ORIGINAL_TABLE_NAME_MAX_LONG}) = '${MYSQL_TABLE_NAME}'

这篇文章先容了变量的详细利用方法,须要请点击查看:变量先容

4、天生SQL实行脚本

通过利用拼接函数,天生添加表备注信息的SQL脚本。

SELECTCONCAT('COMMENT ON TABLE "public"."ods_' , '${MYSQL_TABLE_NAME}' , '"' ,' IS ' , '''${TABLE_COMMENT}'';')

5、创建表,保存实行脚本

提前在数据库创建一张表,用来保存天生的实行脚本,下面的例子是在PgSQL库的"public"模式下创建了一张表。
由于表备注信息可能包含单引号、双引号、转义字符等分外字符,可能会导致天生的实行脚本不准确,从而导致整体任务运行中断,以是这里没有直接运行该脚本。

CREATE TABLE "public"."table_comment" ( "comment_js" varchar(1000) );Kettle实行文件开拓

整体实行文件如下图所示,下面一行为作业文件"table_comment_from_mysql_to_pgsql"的详细内容。

在"get_table_name"(获取表面列表)这一步中实行了两个操作,如下图所示:

作业文件"table_comment_from_mysql_to_pgsql"中的三个转换对应的详细内容,如下图所示:

双击下图中赤色方框内的作业工具,然后在弹出的对话框内勾选"实行每一个输入行?",从而实现任务的循环实行。

在最外层的作业文件"table_comment_from_mysql_to_pgsql_top"上设置命名参数,指定连接的数据库工具,如下图所示:

在点击运行作业文件时,如果实际的命名参数取值和默认的不一致,可以进行手动填写,如下图所示:

二、表字段备注信息同步操作思路

1、获取须要同步备注信息的表名称;2、根据某一个原始表名称,获取对应表的字段名称列表;3、根据上一步中获取的某一个表字段名称和对应表名称,获取对应的表字段备注信息;4、天生表字段备注信息实行脚本,并存入单独的表中;5、循环实行第2-4步骤,遍历所有表名称和表字段名称。

代码准备

这里紧张供应新增加的代码脚本,其他参考本文"表备注信息同步"部分

1、获取表字段名称

select column_name from information_schema.columnswhere table_schema = '${pgsql_schema}'and table_name = concat('ods_','${MYSQL_TABLE_NAME}')

2、获取表字段备注信息

SELECT column_commentFROM information_schema.COLUMNSWHERE table_schema = '${mysql_schema}'AND substring(table_name,1,${ORIGINAL_TABLE_NAME_MAX_LONG}) = '${MYSQL_TABLE_NAME}'AND column_name = '${COLUMN_NAME}'

3、天生SQL实行脚本

通过利用拼接函数,天生添加表字段备注信息的SQL脚本。

SELECT CONCAT('COMMENT ON COLUMN "public"."ods_' , '${MYSQL_TABLE_NAME}' , '"."' ,'${COLUMN_NAME}' , '"', ' IS ' , '''${COLUMN_COMMENT}'';')Kettle实行文件开拓

Kettle脚本的整体构造如下图所示:

总结

本文详细先容了数据库中备注信息的批量添加方法(MySQL到PgSQL)。
须要文中干系示例文件的话,请关注头条号后,私信发送“变量和参数”获取。

如果你也适值是从MySQL库到PgSQL库同步备注信息,基本上可以直策应用网盘中的Kettle脚本文件,但须要做如下调度:

1、根据实际业务,选择对应的连接数据库;2、在实行脚本时,根据对应的数据库模式,为命名参数"pgsql_schema"和"mysql_schema"赋值。

标签:

相关文章

极差提成php技巧_提成制是好方法吗

民企很喜好说的一句话:以古迹论英雄,发卖回款多的人,自然可以多得到提成。然而,古迹达成只是“果”,担保古迹达成的“因”是什么,却少...

Web前端 2024-12-14 阅读0 评论0