Postgresql, как изменить столбец в PythonPython

Программы на Python
Ответить
Anonymous
 Postgresql, как изменить столбец в Python

Сообщение Anonymous »

Я случайно написал кучу таблиц с сокращенными именами столбцов и хочу их отредактировать.
очевидно

Код: Выделить всё

ALTER TABLE [$table_name]
RENAME COLUMN "h" TO "high";

ALTER TABLE [$table_name]
RENAME COLUMN "v" TO "volume";

ALTER TABLE [$table_name]
RENAME COLUMN "o" TO "open";
и т. д. работает в Navicat, но мне придется искать отдельно и вводить имя каждой таблицы одно за другим, плюс, если один из столбцов по какой-либо причине не найден, это просто останавливает остальная часть запроса. В любом случае, я попробовал

Код: Выделить всё

        with engine.connect() as conn:
inspector = inspect(engine)
for table_name in inspector.get_table_names():
columns = [col["name"] for col in inspector.get_columns(table_name)]
if x in columns:
# Generate and execute the ALTER TABLE command
query = text(f'ALTER TABLE "{table_name}" RENAME COLUMN "{x}" TO "{y}";')
conn.execute(query)
columns = [col["name"] for col in inspector.get_columns(f"{table_name}")]
print("Updated columns:", columns)
print(f'Renamed column "{x}" to "{y}" in table "{table_name}".')
в Python, и хотя операторы печати сообщат мне, что все изменилось нормально, фактические столбцы останутся неизменными.
ps - и если кто-нибудь знает, как это сделать Я смогу автоматизировать это в navicat? Кажется, что Automate просто запускает запрос несколько раз, и я не могу изменить параметры. Как я могу выполнить цикл, получить список и изменить перечисленные таблицы?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»