Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: как создать в mysql 20 таблиц c одинаковыми параметрами но с разнимы именами?  (Прочитано 1722 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
> а каждое 'name' обезательно брать в скобки? (просто у мну их 342)
В смысле в кавычки? в скобки каждое не обязательно брать...
В каком виде эти названия сейчас? sed и awk приведут их в должный формат, хоть со скобками, хоть с кавычками, хоть со смайликами

Оффлайн ziminv

  • Автор темы
  • Активист
  • *
  • Сообщений: 263
  • linux mint cinnamon 17.1 64bit 8 Gb ram
    • Просмотр профиля
вид TABLEA, TABLEB, TABLEC
выходит могу написать
names = {TABLEA, TABLEB, TABLEC}
??

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Если у вас в файле только имена таблиц, разделенные, к примеру, запятыми, то можно извлечь их так:
#!/usr/bin/python3

def main():
conn = MySQLdb.connect (host = "localhost",
                           user = "testuser",
                           passwd = "testpass",
                           db = "test")
cursor = conn.cursor ()

f = open("filename", 'r')
for line in f:
names = line.split(",")
for name in names:
cursor.execute("CREATE TABLE {0} (id INT(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY(id)".format(name))
return 0

if __name__ == '__main__':
main()

Оффлайн ziminv

  • Автор темы
  • Активист
  • *
  • Сообщений: 263
  • linux mint cinnamon 17.1 64bit 8 Gb ram
    • Просмотр профиля
а как просто вывести в файл??не вызывать sql

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
а как просто вывести в файл??не вызывать sql

Ну, как-то так:
#!/usr/bin/python3
def main():

fin = open("filename", 'r')
fout = open("filename1", 'w')
for line in fin:
names = line.split(",")
for name in names:
name = name.strip()
fout.write("CREATE TABLE {0} (id INT(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY(id)\n".format(name))
return 0

if __name__ == '__main__':
main()

Соответственно, fin - файл, из которого читаем, в fout пишем.

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
а каждое 'name' обезательно брать в скобки? (просто у мну их 342) и писал в файл.
Соберите их в файл и загрузите.
Построчно - строчка 1 name без скобок.
Заодно и с питоном познакомитесь. 

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.