mysql 指定库对所有表加tenant

编程入门 行业动态 更新时间:2024-10-18 06:05:49

<a href=https://www.elefans.com/category/jswz/34/1771279.html style=mysql 指定库对所有表加tenant"/>

mysql 指定库对所有表加tenant

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

本文发布于:2023-12-06 19:12:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1668526.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:mysql   tenant

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!