|
|||||||
Как реализовать действия неподдерживаемых операторов команды ALTER TABLE в SQLite3
Время создания: 25.12.2012 11:55
Раздел: Компьютер - Программирование - SQL - SQLite3
Запись: xintrea/mytetra_syncro/master/base/1356422142a84zhc8wf7/text.html на raw.github.com
|
|||||||
|
|||||||
В документации по SQLite указано, что пропущены (не поддерживаются) такие типы операторов ALTER TABLE как DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT и так далее. Это не значит, что DROP COLUMN, ALTER COLUMN нельзя реализовать в SQLite. Переименованиe столбца temp на new в тaблице Temper можно реализовать так: BEGIN TRANSACTION; -- создаем временную таблицу CREATE TEMPORARY TABLE Temper_backup(name,temp); -- копируем данные из таблицы Temper во временную таблицу Temper_backup INSERT INTO Temper_backup SELECT name,temp FROM Temper; -- удаляем таблицу Temper DROP TABLE Temper; -- создаем таблицу Temper CREATE TABLE Temper(name,new); -- вставляем данные из таблицы Temper_backup в таблицу Temper INSERT INTO Temper SELECT name,temp FROM Temper_backup; -- удаляем таблицу Temper_backup DROP TABLE Temper_backup; COMMIT; Этим же способом можно изменить тип поля. Удалить столбец temp в тaблице Temper можно так: BEGIN TRANSACTION; -- создаем временную таблицу Temper CREATE TEMPORARY TABLE Temper_backup(name); -- копируем данные из таблицы Temper во временную таблицу Temper_backup INSERT INTO Temper_backup SELECT name FROM Temper; -- удаляем таблицу Temper DROP TABLE Temper; -- создаем таблицу Temper CREATE TABLE Temper(name); -- вставляем данные из таблицы Temper_backup в таблицу Temper INSERT INTO Temper SELECT name FROM Temper_backup; -- удаляем таблицу Temper_backup DROP TABLE Temper_backup; COMMIT; |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|