Изменить тип столбца в sqlite3
Я новичок в SQLite 3, и только сейчас мне пришлось добавить столбец в существующую таблицу, которая у меня была. Я сделал это, выполнив: ALTER TABLE thetable ADD COLUMN category; .
Конечно, я забыл указать тип этого столбца. Первое, о чем я подумал, — это удалить этот столбец, а затем снова добавить его. Однако кажется, что у SQLite нет простого способа сделать это, и мне пришлось бы сделать резервную копию таблицы и воссоздать ее без столбца.
Это кажется беспорядочным, и мне было интересно, есть ли просто способ изменить / добавить тип столбца. Я мог бы так представить, но мой поиск не дал результатов, поскольку я был новичком в SQLite, я полагаю, что это было из-за того, что моя формулировка не была в запросе.
4 ответа
SQLite не поддерживает удаление или изменение столбцов, очевидно, . Но помните, что типы данных столбцов также не являются жесткими в SQLite.
Это возможно путем сброса, редактирования и повторного импорта таблицы.
Этот скрипт сделает это за вас (адаптируйте значения в начале скрипта к вашим потребностям):
Это возможно, воссоздав таблицу. Это работает для меня, пожалуйста, выполните следующий шаг:
- создать временную таблицу, используя как select * из вашей таблицы
- отбросьте свою таблицу, создайте свою таблицу, используя тип изменения столбца
- теперь вставьте записи из временной таблицы в вашу вновь созданную таблицу
- удалить временную таблицу
Выполните все вышеперечисленные шаги в рабочем потоке, чтобы уменьшить нагрузку на uithread
Если вы предпочитаете графический интерфейс, Браузер БД для SQLite сделает это за несколько щелчков мышью.
- «Файл» — «Открытая база данных»
- На вкладке «Структура базы данных» щелкните содержимое таблицы (не имя таблицы), затем меню «Правка», «Изменить таблицу», и теперь вы можете изменить тип данных любого столбца с помощью раскрывающегося меню. Я изменил поле «текст» на «числовое», чтобы получать данные в диапазоне чисел.
Браузер БД для SQLite является бесплатным и с открытым исходным кодом. Для Linux он доступен из репозитория.
Как изменить тип столбца в sqlite
Если таблица уже была ранее создана, и ее необходимо изменить, то для этого применяется команда ALTER TABLE . Она поддерживает различные опции и возможности. Рассмотрим лишь основные сценарии, с которыми мы можем столкнуться.
Переименование таблицы
Для переименования таблицы применяется операторы RENAME TO , после которого указывается новое имя таблицы:
Здесь таблица users переименовывается в «people».
Добавление нового столбца
Добавим в таблицу users новый столбец email:
В данном случае столбец email имеет тип TEXT и для него определено ограничение NOT NULL .
Изменить тип столбца в sqlite3
Я довольно новичок в SQLite 3, и сейчас мне пришлось добавить столбец в существующую таблицу. Я продолжал делать это, делая: ALTER TABLE thetable ADD COLUMN category; .
Конечно, я забыл указать тип этого столбца. Первое, о чем я подумал, это удалить этот столбец, а затем снова добавить его. Однако, похоже, что в SQLite нет простого способа сделать это, и мне пришлось бы сделать резервную копию таблицы и заново создать ее без столбца.
Это кажется грязным, и мне было интересно, есть ли способ изменить /добавить тип столбца. Я мог бы себе это представить, но мой поиск не дал результатов, так как, будучи новичком в SQLite, я думаю, это произошло из-за того, что моя формулировка не была включена в запрос.