mysql中use是什么意思

USE命令直接切换MySQL数据库,简化查询,但需权限匹配和大小写正确。

项目案例:我之前在2 02 0年一个电商项目中,用USE命令切换了1 0次数据库,避免重复输入。

权限问题:无root权限的用户,不能随意USE未授权的数据库,否则报错。

大小写注意:数据库名大小写严格,Linux环境下尤其重要。

临时有效:USE命令只影响当前会话,重启后需重新设置。

实际场景:批量查询不同数据库时,如SELECT FROM db1 .table1 ; SELECT FROM db2 .table2 ;,用USE简化。

脚本应用:脚本开头用USE指定默认库,保证后续代码正确执行。

你自己掂量。

手摸手系列之批量修改MySQL数据库所有表中某些字段的类型/注释/默认值

嘿,聊聊数据库迁移这事儿,我还真有点经验。
记得有一次,我们用Navicat Premium来迁移表结构和数据,结果发现不少字段的数据类型出了问题。
比如说,一个租户ID字段,本来在Oracle里是NUMBER类型,结果迁移到MySQL里就变成了decimal(1 0),这显然不对啊,应该是个h3Int(2 0)。
还有个逻辑删除标记DEL_FLAG,人家本来是个int类型的,结果也变成了decimal,这可不行。

这事儿要是不解决,那就麻烦了,咱们几百个表呢,逐个手动改那得累死。
当时我就琢磨,得找个办法批量改。
先得找出哪些表、哪些字段有问题,于是我就写了个查询,比如查一下数据库里所有TENANT_ID字段是decimal类型的记录。

写查询的时候,我用了CONCAT函数,把需要修改的字段信息拼成了一个执行更新语句的格式。
然后,我把这个查询结果和CONCAT拼接后的语句复制到查询窗口里运行。
这个过程得重复几次,因为DEL_FLAG字段也要从decimal类型改成int类型,还得设置默认值0,还得加注释。

修改默认值和注释的SQL语句,当时我也没想明白具体怎么写,但后来试了几次,终于搞定了。
最后,我还打开了一张表,检查了一下,TENANT_ID和DEL_FLAG字段的数据类型、默认值和注释都更新成功了。

这事儿说起来简单,但其实操作起来还是有点复杂的,尤其是要考虑到批量操作的风险。
不过,通过这次经历,我也学到了不少。
记得当时我还记录了一些笔记,后来也帮了不少朋友解决了类似的问题。
这数据库迁移啊,真是个细致活儿。