#python #sql #flask #sqlalchemy
Вопрос:
Мне нужно динамически создавать столбцы на table1
основе значений, полученных из формы. Я использую sqlalchemy
для этого то же самое и использую приведенный ниже код:
engine.execute('ALTER TABLE %s ADD COLUMN %s %s;' % ('table1', col_name, "VARCHAR(100)"))
В приведенном выше заявлении:
table1
: имя таблицы, в которую мы вставляем столбец динамически.col_name
: строка, содержащая имя столбца, который необходимо вставить.VARCHAR(100)
: тип столбца
Приведенный выше код выполняется без каких-либо ошибок, и добавляется новый столбец. Однако все создаваемые столбцы имеют тип данных, VARCHAR(60)
указанный в таблице. Мне нужно увеличить длину столбца. Кроме того, я не пользуюсь flask-sqlalchemy
.
Любые идеи, что может быть причиной проблемы.
Комментарии:
1. Какой компонент базы данных вы используете ? Можем ли мы сначала увидеть код, представляющий таблицу ?
2. Я использую библиотеку sqlalchemy и базу данных MySQL. Я определил свой движок следующим образом:
engine = create_engine('mysql mysqldb://root:root1234@localhost/App')
3. Кроме того, в моем определении таблицы есть только 2 начальных столбца. У меня есть форма для отправки формы, приведенный выше фрагмент запускается вместе с другими кодами для создания нового столбца с данными, введенными в форму. Поэтому я должен использовать execute для прямого выполнения запроса, а не использовать обычный
session.update(record)
.