簡體   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