Как это сделать в SQLite3? - PullRequest
1 голос
/ 04 ноября 2011

Попытка сделать это в SQLite3.

ALTER TABLE foo MODIFY (vid NUMBER(6));

1 Ответ

2 голосов
/ 04 ноября 2011

Вы не можете изменить столбец в SQLite.

Вы должны создать таблицу TEMPORARY, удалить оригинал, снова CREATE IT, а затем ВСТАВИТЬ обратно из таблицы TEMPORARY.

Предполагая, что количество и порядок столбцов остаются неизменными, и что ваша таблица не содержит ССЫЛОЧНЫХ ПЕРВИЧНЫХ или УНИКАЛЬНЫХ КЛЮЧЕЙ, вы можете использовать этот упрощенный синтаксис:

CREATE TEMP TABLE TempTable AS SELECT * FROM YourTable;
DROP TABLE YourTable;
CREATE TABLE YourTable (col defs here. . .);
INSERT INTO YourTable SELECT * FROM TempTable;

Если вы изменяете количество или порядок столбцов, вам придется явно перечислить столбцы в операторе INSERT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...