Измените длину переменных столбцов, динамически создаваемых в таблице SQL, с помощью sqlalchemy

#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) .