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
меры
- Открыть базу данных в sqlite manage
- двойной клик по имени таблицы
- появится всплывающее окно изменения.
С помощью sqllite manager 3.5 дважды щелкните по таблице, которую нужно изменить