Что происходит с триггерами / индексами при переименовании / создании / вставке / удалении таблицы в SQLite? - PullRequest
1 голос
/ 03 декабря 2009

Что происходит с триггерами / индексами, когда я переименовываю / удаляю таблицу SQLite?

Я запускаю и обновляю скрипт, где я добавляю столбец в таблицу, поэтому я сделал следующее:

ALTER TABLE [Entry] RENAME TO [Entry_temp];
CREATE TABLE [Entry] (
    [EntryID] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
    ...
)
INSERT INTO [Entry] 
 (...)
  SELECT ...
  FROM [Entry_temp];
DROP TABLE [Entry_temp];

Таблица Entry имела триггер и индекс

-- these were created before    
CREATE TRIGGER Entry_Version_Update AFTER UPDATE ON [Entry]
  BEGIN
    UPDATE [Entry] SET [Version] = [Version] + 1
  WHERE [EntryID] = new.[EntryID];
  END;

CREATE INDEX ix_Entry_ClientID ON [Entry] ([ClientID]);

Нужно ли удалять их до обновления, а создавать новые после? Или я могу просто оставить их?

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