当前位置: 首页 > news >正文

mysql 指定库对所有表加tenant_id

mysql 指定库里所有表加tenant_id

由于业务所需,区分公司主体,tenant_id油然而生

但库里表至少几百个,不可能一个一个去加,时间成本,人力成本都很大,所以写一个存储过程函数,对其进行一次性操作

  • 对表中已存在tenant_id忽略
DELIMITER //
CREATE PROCEDURE AddTenantIdToTables()
BEGINDECLARE done INT DEFAULT 0;DECLARE tableName VARCHAR(255);DECLARE colCount INT;DECLARE cur CURSOR FOR SELECT table_nameFROM information_schema.tablesWHERE table_schema = 'test' AND table_type = 'BASE TABLE';DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;OPEN cur;read_loop: LOOPFETCH cur INTO tableName;IF done THENLEAVE read_loop;END IF;-- 检查表是否已包含 tenant_id 列SELECT COUNT(*) INTO colCountFROM information_schema.columnsWHERE table_name = tableNameAND column_name = 'tenant_id';-- 如果 tenant_id 列不存在,则添加IF colCount = 0 THEN-- 构造 ALTER TABLE 语句为表新增字段 tenant_idSET @alterQuery = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT "租户id";');-- 执行 ALTER TABLE 语句PREPARE stmt FROM @alterQuery;EXECUTE stmt;DEALLOCATE PREPARE stmt;END IF;END LOOP;CLOSE cur;
END //
DELIMITER ;

⭐️生成好该函数后,执行该函数,即可

相关文章:

mysql 指定库对所有表加tenant_id

mysql 指定库里所有表加tenant_id 由于业务所需,区分公司主体,tenant_id油然而生 但库里表至少几百个,不可能一个一个去加,时间成本,人力成本都很大,所以写一个存储过程函数,对其进行一次性操作…...

uniapp 测试 app 到安卓模拟器部署方法以及常见错误解决 无废话

uniapp 测试 app 到安卓模拟器 1.1 安装安卓模拟器 https://www.yeshen.com/ 1.2 查看安装模拟器端口 右击夜神模拟器属性打开文件位置 在打开的文件夹找到 debugReport 双击运行查看运行出来的端口号 一般都是:62001 1.3 HBuilder 配置 选中项目运行运行到手机…...

Qt作业九

1、思维导图 2、作业 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> #include <QTime> #include <QTimerEvent> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAME…...

vulkan SDK安装

文章目录 一. vulcan官网二.安装流程 一. vulcan官网 https://vulkan.lunarg.com/sdk/home#windows 二.安装流程 点击下载 双击下载的*.exe进行安装 点击下一步 点击下一步 选择安装位置&#xff0c;点击下一步 点击全选&#xff0c;选择下一步 勾选同意&#xf…...

vscode调试技巧 断言 assert

目录 调试技巧标题debug release介绍调试技巧断点 断点的意思 就是代码执行到断点处停下来&#xff0c;让你去调试。不管前面有多少代码&#xff0c;直接跳到断点处&#xff08;当然前面的已经执行&#xff09;逐过程 不会进入调用函数内部&#xff0c;不管里面怎么执行。 逐语…...

2、Kafka 生产者

3.1 生产者消息发送流程 3.1.1 发送原理 在消息发送的过程中&#xff0c;涉及到了两个线程——main 线程和 Sender 线程。在 main 线程 中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator&#xff0c; Sender 线程不断从 RecordAccumulator 中…...

使用CDN构建读取缓存设计

在构建需要高吞吐量和最小响应时间的系统的API时&#xff0c;缓存几乎是不可避免的。每个在分布式系统上工作的开发人员都曾在某个时候使用过某种缓存机制。在本文中&#xff0c;我们将探讨如何使用CDN构建读取缓存设计&#xff0c;不仅可以优化您的API&#xff0c;还可以降低基…...

windows上下载github上的linux内核项目遇到的问题

问题一&#xff1a;clone的时候报错 Cloning into G:\github\linux... POST git-upload-pack (gzip 27925 to 14032 bytes) remote: Counting objects: 6012062, done. remote: Compressing objects: 100% (1031/1031), done. remote: Total 6012062 (delta 893), reused 342 (…...

Leetcode 15:三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 解题思…...

npm常用命令与操作篇

npm简介 npm是什么 npm 的英文是&#xff0c;node package manager&#xff0c;是 node 的包管理工具 为什么需要npm 类比建造汽车一样&#xff0c;如果发动机、车身、轮胎、玻璃等等都自己做的话&#xff0c;几十年也做不完。但是如果有不同的厂商&#xff0c;已经帮我们把…...

Go 语言的垃圾回收机制:自动化内存管理

在编程的世界中&#xff0c;内存管理一直是一个重要的问题。不正确的内存管理可能导致内存泄漏和程序崩溃。Go 语言以其高效的垃圾回收机制而闻名&#xff0c;使开发者从手动内存管理的烦恼中解脱出来。本文将深入探讨Go语言的垃圾回收机制&#xff0c;介绍它的工作原理以及如何…...

java-各种成员变量初始化过程-待完善

前置条件 一、本文章讨论的成员变量 public static final String aa "aa";public static final Integer bb 1;public static final Students cc new Students();public static String aa1 "aa";public static Integer bb1 1;public static String bb2…...

059:mapboxGL监听键盘事件,通过eastTo控制左右旋转

第059个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中监听键盘事件,通过eastTo控制左右旋转。 本例通过easeTo方法来加减一定数值的bearing角度,通过.addEventListener的方法来监听键盘的按键动作。这里一定要设置interactive: false, 否则展现不出来旋转效果。 直…...

jdk对linux cgroup v2容器化环境识别情况

Linux各发行版将cgroups v2作为默认的情况如下&#xff1a; Container-Optimized OS&#xff08;从 M97 开始&#xff09;Ubuntu&#xff08;从 21.10 开始&#xff0c;推荐 22.04&#xff09;Debian GNU/Linux&#xff08;从 Debian 11 Bullseye 开始&#xff09;Fedora&…...

vue3后台管理系统之顶部tabbar组件搭建

1.1静态页面搭建 <template><div class"tabbar"><div class"tabbar_left"><!-- 面包屑 --><Breadcrumb /></div><div class"tabbar_right"><!-- 设置 --><Setting /></div></di…...

安装Apache2.4

二、安装配置Apache&#xff1a; 中文官网&#xff1a;Apache 中文网 官网 (p2hp.com) 我下的是图中那个版本&#xff0c;最新的64位 下载下后解压缩。如解压到D:\tool\Apache24 PS&#xff1a;特别要注意使用的场景和64位还是32位版本 2、修改Apcahe配置文件 2.1配置Apache…...

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(9)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(8) 上一回讲完了drm_internal_framebuffer_create函数中的framebuffer_check函数中的drm_get_format_info函数,本文继续讲解framebuffer_check函数中的余下步骤。为了便于理解,再次贴出framebuffer_ch…...

Win10使用nginx,注册到服务设置自启与后台运行,解决 Access is denied 问题

安装 nginx 下载 nginx 官网下载页面&#xff1a;https://nginx.org/en/download.html直接选择当前最新 window 版本的或找到自己需要的版本下载即可 安装使用 下载完成后是有一个压缩包文件&#xff0c;直接解压到自己需要的目录下即可。是免安装的&#xff0c;解压即用简…...

短视频矩阵系统源头开发

一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统&#xff0c;目前是全国源头独立开发)&#xff0c;开发功能大拆解分享&#xff0c;功能大拆解&#xff1a; 7大模型剪辑法&#xff08;数学阶乘&#x…...

《windows核心编程》第1章 错误处理

一、错误信息的获取 1.1 C库错误信息 1、获取错误信息 #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {fopen("D:\\ASC", "r");printf("%s\n", strerror(errno));getchar();return 0; } 2、设置错…...

【YOLOv5改进实战】Neck特征融合新思路:CAM模块在PANet不同层级的注入与性能调优

1. CAM模块与YOLOv5 Neck结构的基础认知 在目标检测领域&#xff0c;YOLOv5因其出色的速度和精度平衡成为工业界宠儿。它的Neck部分采用PANet&#xff08;Path Aggregation Network&#xff09;结构&#xff0c;负责将不同层级的特征图进行融合。我曾在多个实际项目中验证过&am…...

突破百度网盘限速:Python直连解析工具让你的下载速度飙升30倍

突破百度网盘限速&#xff1a;Python直连解析工具让你的下载速度飙升30倍 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字资源获取日益频繁的今天&#xff0c;百度网盘作…...

AiPy帮我工作后,我开始躺平摸鱼

作为一名某互联网公司摸爬滚打三年的运营分析师&#xff0c;我最近上班幸福感直线上升——没有涨工资&#xff0c;leader也没有请假&#xff0c;是因为我找到工作摸鱼的真神&#xff1a;AiPy。体验了不到一个月&#xff0c;就已经为我解决了太多工作痛点&#xff0c;让我从无休…...

别再用FR4不行了!实测12G-SDI在普通PCB板材上的完整走线指南(附阻抗计算与AntiPad避坑)

突破认知&#xff1a;用普通FR4板材实现12G-SDI高速信号完整性的实战指南 在硬件设计领域&#xff0c;关于高速信号传输一直存在一个根深蒂固的误解——只有昂贵的专用高频板材才能胜任12G-SDI这类高速信号的需求。这种观念导致许多预算有限的中小企业、独立开发者和学生创客望…...

从零到可用:在手机上用 Termux + Git + Obsidian 打造稳定同步环境(踩坑全记录)

从零到可用&#xff1a;在手机上用 Termux Git Obsidian 打造稳定同步环境&#xff08;踩坑全记录&#xff09;hey 这里是不做超级小白 喜欢我的内容的话请多多支持我~这篇文章不是“标准教程”&#xff0c;而是我真实从踩坑到跑通的一整套过程总结。 适合&#xff1a;想在手…...

NVIDIA Profile Inspector:解锁显卡隐藏性能的3个实用场景指南

NVIDIA Profile Inspector&#xff1a;解锁显卡隐藏性能的3个实用场景指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾经觉得NVIDIA控制面板提供的选项太少&#xff0c;无法充分发挥显卡潜…...

软考-数据库系统工程师-五大经典查找算法原理与数据库应用

一、引言查找算法是数据结构领域的核心基础模块&#xff0c;也是软考数据系统工程师考试的高频考点&#xff0c;在历年选择题中占比约 5%-8%&#xff0c;同时是理解数据库索引、查询优化、存储结构设计的核心理论支撑。查找技术的发展经历了三个核心阶段&#xff1a;1940-1960 …...

Java程序员AI时代自救指南|全阶段可落地学习路线手册(一)

(一)、Java程序员AI时代自救指南&#xff5c;全阶段可落地学习路线手册 前言&#xff1a;手册使用规则&#xff08;必读&#xff09; 核心宗旨&#xff1a;底层为根、生产为王、AI为翼、架构为上限 绝对准则&#xff1a;不学无用理论、全部绑定企业实战、每个模块闭环&#…...

高效M3U8视频下载方案:解锁图形界面工具的专业用法

高效M3U8视频下载方案&#xff1a;解锁图形界面工具的专业用法 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 在当今数字时代&#xff0c;M3U8视频下载已成为许多用户获取在线教…...

Nintendo Switch大气层系统完全指南:从零开始解锁你的游戏主机

Nintendo Switch大气层系统完全指南&#xff1a;从零开始解锁你的游戏主机 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要让你的Nintendo Switch拥有更多可能性吗&#xff1f;大气层&…...