Использование нескольких баз данных в SQL с Python - PullRequest
0 голосов
/ 20 марта 2020

Я работаю на сайте регистрации и сейчас пытаюсь создать несколько баз одновременно.

У меня есть 2 базы данных, одна называется Tables, а другая - Digit .

Я хочу использовать одну и ту же функцию для них обоих, только для управления двумя базами данных одновременно, отличаться выбором интерфейса.

Я пытался использовать% s в качестве местозаполнитель для имени таблицы, в то время как у меня в начале есть указания для разных баз данных (1: таблицы, 2: Di git)

cursor.execute("SELECT * FROM %s WHERE active = %s AND isFull = %s ORDER BY minLevel" , [bases[DB], 1,0])

Это код, который я написал, я надеялся переключать базы данных на основе базы данных, заданной из внешнего интерфейса сайта.

И ... это не сработало. Я действительно застрял здесь, и я не уверен, является ли этот путь даже законным ...

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 марта 2020

Я понял это!

, кстати, благодаря другому сообщению - спасибо cursor.query ('select * from% s;', ('thistable',)) выдает синтаксическую ошибку 1064: ... возле '' thistable '' на

проблема в том, что вы не можете использовать% s для "переменных базы данных", таких как столбец, базы данных и т. д. c.

. предварительно построить запрос в виде строки, а затем использовать команду execute в следующем формате: cursor.execute (q , [variable]), а q - предварительно созданный запрос. и при построении запроса для добавления базы данных требуется

, поэтому приведенный выше код должен выглядеть следующим образом (у меня есть предварительно созданный словарь)

q= "SELECT * FROM " + dict[Number] + " WHERE active = %s AND isFull = %s ORDER BY minLevel"
cursor.execute(q , [1,0])

, в то время как dict - это имя словаря, число переменная, которую я получил от внешнего интерфейса. и active, is Full и minLevel - мои столбцы, которые я использую.

надеюсь, это кому-нибудь поможет!

...