繁体   English   中英

在MySQL数据库中的所有相似表(包含相同架构)上运行ALTER TABLE

[英]Run an ALTER TABLE across all like tables (containing the same schema) in MySQL database

我有一个数据库,每个客户端包含一个表,每个表中都有相同的列。 我们正在谈论数千个客户表。

我需要为这些表中的每一个添加新列以进行新的开发,但是无法找到一种方法来递归数据库中的所有表以添加列。 我知道MS SQL有sp_MSforeachtable可能满足我的要求,但是我不知道MySQL是否有类似的东西?

按照前面的答案,您可以执行以下操作:

select concat('ALTER TABLE `',table_name,'` ADD `test` INT NOT NULL AFTER `column_x`;')
from information_schema.tables
where table_schema = 'your_db_name'

然后删除一些与客户端无关的表(这里希望客户端是拥有“专用表”的唯一实体),或者在可能的情况下在table_name上添加条件(例如AND table_name LIKE "client_%" ),然后执行整个批处理。

对于该用例,使用过程的第二种解决方案(对于我而言)太复杂了,但是也许在PLSQL方面比我更熟练的人不会同意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM