SQLite - изменить тип столбца таблицы?

Я начинаю проект с небольшой базой данных и планирую использовать SQLite. Если я создаю таблицу и определяю один из столбцов как текст, но все сохраненные значения являются целыми числами, есть ли способ изменить тип данных столбца? Я использую SQLite Manager и не могу найти функцию, которая позволяет мне это делать. Могу ли я сделать это с помощью команды SQL, или это ограничение SQLite? Возможно, даже с этим ограничением можно найти способ обойтись и создать новую таблицу с необходимыми типами столбцов, а затем импортировать в нее данные.

С уважением, Ник

4 ответа

Решение

SQLite не полностью поддерживает операторы ALTER TABLE. Единственное, что вы можете сделать, это переименовать таблицу и / или добавить столбцы. Если вы хотите переименовать столбец, лучше всего создать новую таблицу с новыми типами / именами столбцов и удалить старую таблицу, чтобы переименовать новую.

Допустим, у вас есть таблица, и вам нужно переименовать "field-1" в "field-2": First ==>> переименовать старую таблицу:

    ALTER TABLE original RENAME TO tmp;

Теперь создайте новую таблицу на основе старой таблицы, но с обновленным именем столбца:
== >> создать таблицу с обновленными столбцами

    CREATE TABLE original(
    field_a INT
   , field_b INT
    );

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

   INSERT INTO origignal(field_a, field_b)
   SELECT field_a, field_b
   FROM tmp;

Наконец, бросьте старый стол.

   DROP TABLE tmp;

Нет, "быстрого" способа сделать это с SQLite нет. Не так, как вы можете с MySQL. Вам придется бросить стол, а затем добавить его снова.

Следует также помнить, что SQLite достаточно гибок в отношении типов данных, которые вы можете поместить в каждый раздел. Вот ссылка, которая описывает типы данных и как они работают: http://www.sqlite.org/datatype3.html

Другим вариантом может быть использование MySQL, если функция, о которой вы говорите, имеет для вас большое значение. Это все еще бесплатно и отлично подходит для небольших проектов.

Изменить таблицу в SqliteManger

меры

  1. Открыть базу данных в sqlite manage
  2. двойной клик по имени таблицы
  3. появится всплывающее окно изменения.

С помощью sqllite manager 3.5 дважды щелкните по таблице, которую нужно изменить

Другие вопросы по тегам