ITPub博客

首页 > 数据库 > 国内数据库 > [译] 来自 Percona Support Team 的新年祝福!

[译] 来自 Percona Support Team 的新年祝福!

原创 国内数据库 作者:少安事务所 时间:2024-04-17 11:32:01 0 删除 编辑

译文

在Percona支持团队,我们每周花几个小时做这样的实验: 短期的集体项目,与工作任务没有直接关系。
我们最近一次的实验是关于即将为冬季假期做准备,或者说我们将准备圣诞树并装饰它。 为此,我们使用了自己最喜欢的工具: MySQL和  ASCII图像   。因此,我们创建了一个函数,并在终端中打印 [圣诞树]( https://en.wikipedia  .
org/wiki/New_Year_tree) ,并用我们想要的符号装饰它。

例如,要创建一个用星星装饰的三层树,函数调用方法如下:

$ mysql ny_tree -e "select ny_tree(3, '*')" --vertical --skip-column-names -s
*************************** 1. row ***************************
   /\
  /__\
  /* \
 /____\
 /  * \
/______\
   ||


因为MySQL支持Unicode,您可以使用任何符号,且使符号和空格的宽度一样。例如,您可以用蜡烛装饰你的圣诞树,而不会有点燃你家的风险:

$ mysql ny_tree -e "select ny_tree(4, '🕯')" --vertical --skip-column-names -s
*************************** 1. row ***************************
    /\
   /__\
   /🕯 \
  /____\
  /🕯  🕯\
 /______\
 /🕯🕯 🕯  \
/________\
    ||

您可以将终端的颜色更改为看起来更喜庆的颜色,将终端的大小与树中的层数对齐,并在循环中调用函数以获得动态图像。
例如,本文开头的动图是由以下这个命令实现的:

$ for i in `seq 1 1 1000`; do mysql ny_tree -e "select '\\nHappy New 2022 Year\!', ny_tree(12, '⚝')" --vertical --skip-column-names -s; sleep 1; done


我只需调整终端的尺寸并符合树的层数。
ny_tree 和两个辅助函数的代码位于  https://github.com/Percona-Lab/ny-tree 
我们,Percona支持团队,祝您新年快乐,在新的一年里数据库平稳运行!

译者注

在导入函数时,如果遇到报错:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

则只需调整这个参数即可:

set global log_bin_trust_function_creators = true;

本地实测好用!so cool!

for i in `seq 1 1 1000`; do mysql -uroot sbtest -e "select '\\n新春快乐,虎年大吉!卧虎藏喵,全力以富!\!', ny_tree(12, '*')" --vertical --skip-column-names -s; sleep 1; done


https://github.com/shawn0915/ny-tree 





来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31492144/viewspace-3012760/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE、MySQL OCP、Oracle OCP 认证;PostgreSQL ACE ,PGCM;TiDB 社区版主;公众号「少安事务所」作者。

注册时间:2018-02-02

  • 博文量
    97
  • 访问量
    138925