Как я переименовываю столбец в таблице базы данных SQLite?

импорт другого модуля, кажется, частично решает проблему

from email.mime.text import MIMEText

и затем изменяет следующее:

message = 'Subject: {}\n\n{}'.format(subject, msg)
        server.sendmail(config.EMAIL_ADRESS, config.SEND_TO, message)

на

message = MIMEText('Subject: {}\n\n{}'.format(subject, msg))
server.sendmail(config.EMAIL_ADRESS, config.SEND_TO, message.as_string())

, к сожалению, это изменение влияет на Тело письма и «Тема» больше не действуют как единое целое, а находятся внутри тела письма, оставляя мой «Тема» пустым.

285
задан Community 23 May 2017 в 01:54
поделиться

3 ответа

Покопавшись, я нашел эту мультиплатформу (Linux | Mac | Windows) графический инструмент DB Browser for SQLite , который на самом деле позволяет переименовывать столбцы очень удобным для пользователя способом!

Редактировать | Изменить таблицу | Выберите таблицу | Редактировать поле. Нажмите, нажмите! Вуаля!

Однако, если кто-то хочет поделиться программным способом сделать это, я '

55
ответ дан 23 November 2019 в 01:50
поделиться

Скажем, у вас есть таблица, и вам нужно переименовать «colb» в «col_b»:

Сначала вы переименуете старую таблицу:

ALTER TABLE orig_table_name RENAME TO tmp_table_name;

Затем создайте новую таблицу на основе старой таблицы, но с обновленным именем столбца:

CREATE TABLE orig_table_name (
  col_a INT
, col_b INT
);

Затем скопируйте содержимое напротив исходной таблицы.

INSERT INTO orig_table_name(col_a, col_b)
SELECT col_a, colb
FROM tmp_table_name;

Наконец, удалите старую таблицу.

DROP TABLE tmp_table_name;

Оберните все это в BEGIN TRANSACTION; и COMMIT; также, вероятно, хорошая идея.

442
ответ дан 23 November 2019 в 01:50
поделиться

Цитируя документацию sqlite :

SQLite поддерживает ограниченное подмножество ALTER TABLE. Команда ALTER TABLE в SQLite позволяет пользователю переименовать таблица или добавить новый столбец в существующая таблица. Невозможно переименовать столбец, удалить столбец или добавить или удалить ограничения из таблицы.

Конечно, вы можете создать новую таблицу с новым макетом, SELECT * FROM old_table и заполните новую таблицу значениями, которые вы получите.

13
ответ дан 23 November 2019 в 01:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: