可以通过编程来改变多个 MySQL 表吗?

可以通过编程来改变多个 MySQL 表吗?

我有多个 MySQL 表,其名称形式"Shard_0", "Shard_1", "Shard_2" ... "Shard_n"为 它们都具有相同的表结构。它们都位于同一个数据库中。

假设我想向所有这些表添加一列。有没有办法以编程方式实现这一点?

就像是:

# pseudo code    
for i in range(n):
    tablename = "shard_"+str(i)
    ALTER TABLE tablename ...

可以做这样的事情吗?如果可以,我需要什么语言和/或库?

谢谢

答案1

你可以用 bash 脚本和管道来做到这一点

#!/bin/bash
DBNAME="YourDatabaseName"

TNAME=shard_
TVAL="0"

echo "USE $DBNAME;"
while [ $TVAL -lt 10 ]
do

    echo "ALTER TABLE $TNAME$TVAL ...;"
    TVAL=$[$TVAL+1]
done

并使用它

./scriptname | mysql -u user -p

相关内容