Назад | Перейти на главную страницу

Можно ли программно ИЗМЕНИТЬ несколько таблиц MySQL?

У меня есть несколько таблиц MySQL с именами в форме "Shard_0", "Shard_1", "Shard_2" ... "Shard_n" Все они имеют одинаковую структуру таблиц. Все они живут в одной базе данных.

Скажем, я хочу добавить столбец во все эти таблицы. Есть ли способ сделать это программно?

Что-то вроде:

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

Возможно ли такое сделать? Если да, то какой язык и / или библиотека мне нужны?

Спасибо

Вы можете сделать это с помощью сценария 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