SQLite - изменить тип столбца таблицы?
Я запускаю проект с небольшой базой данных, и я рассматриваю возможность использования SQLite.
Если я создаю таблицу, и я определил один из столбцов как текст, но все сохраненные значения - целые числа - есть ли способ изменить тип данных столбца? Я использую SQLite Manager, и я не могу найти функцию, которая позволяет мне это делать. Могу ли я это сделать с помощью команды SQL или это ограничение SQLite?
Возможно, даже с этим ограничением можно найти способ и создать новую таблицу с требуемыми типами столбцов, а затем импортировать в нее данные.
С уважением,
Ник
Ответы
Ответ 1
SQLite не полностью поддерживает инструкции ALTER TABLE. Единственное, что вы можете сделать, это переименовать таблицу и/или добавить столбцы. Если вы хотите переименовать столбец, лучшим вариантом является создание новой таблицы с новыми типами столбцов/имен столбцов и удаление старой таблицы, чтобы переименовать новую.
Допустим, у вас есть таблица и вам нужно переименовать "поле-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;
Ответ 2
Нет, нет быстрого способа сделать это с помощью SQLite. Не так, как вы можете с MySQL. Вам придется отказаться от стола, а затем снова добавить его.
Еще одна вещь, о которой следует помнить, - это то, что SQLite довольно гибко относится к типу данных, которые можно поместить в каждый раздел. Вот ссылка, которая описывает типы данных и как они работают: http://www.sqlite.org/datatype3.html
Другим вариантом может быть использование MySQL, если функция, о которой вы говорите, является для вас большой проблемой. Он по-прежнему бесплатный и отлично подходит для небольших проектов.
Ответ 3
Изменить таблицу в SqliteManger
Шаги
- Открыть базу данных в режиме управления sqlite
- двойной щелчок на имени таблицы
- появится всплывающее окно.
Ответ 4
С sqlite manager 3.5 двойной клик в таблице, который вам нужно изменить