В частности, в SQLite на android нужно ли обновлять представления, если вы изменяете схему таблицы, из которой они построены? - PullRequest
0 голосов
/ 30 января 2020

Простой вопрос на самом деле. Мы должны сделать это на sql сервере, но sqlite на android - это совершенно другая парадигма. Например, вы не можете удалить столбцы. Мне было интересно, если бы кто-нибудь знал, нужно ли отбрасывать и перечитывать представление (с выбранным в нем *), если вы изменили схему таблицы. Насколько я могу сказать, нет refre sh команда просмотра.

1 Ответ

1 голос
/ 30 января 2020

Обновление:

Это не имеет никакого отношения конкретно к Android, но является общим вопросом c SQLite и касается "Представлений базы данных", а не Android " Представления "

. Документация по SQLite может помочь https://www.sqlite.org/lang_altertable.html и https://www.sqlite.org/lang_createview.html, поскольку ответ зависит от того, что вы делаете со схемой.

Переименование таблицы и столбца и столбец Добавить все работы автоматически, когда не используются имена столбцов и SELECT *

Обновление:

Представления базы данных в SQLite просто хранят используемые SQL для генерации представления в таблице "main".sqlite

Таким образом, представление, созданное с помощью CREATE VIEW test AS SELECT * FROM myTable, отображается в таблице sqlite_master как CREATE VIEW test AS SELECT * FROM myTable

Там, если вы добавите столбец к myTable тогда SQL для представления, если вы его воссоздали, оно будет точно таким же

В документах написано DROP и re CREATE, если вы делаете другие вещи

Обновление:

Если вы выполняете другие операции с таблицами, вам, вероятно, потребуется «Создать новую таблицу», «Копировать данные в новую». Таблица "," Удалить старую таблицу "," переименовать новую таблицу в имя старой таблицы "

Так как вы можете DROP таблицу, не опуская VIEW ссылку на нее, тогда вам, вероятно, не потребуется обновлять смотрите и в этом случае

Если вы хотите поиграть с этим без написания кода, вы можете запустить эмулятор, а затем использовать adb shell sqlite3 из командной строки в инструментах платформы, чтобы запустить инструмент командной строки sqlite3 на устройстве. .

И поскольку сам SQLite имеет только CREATE и DROP представлений базы данных, Android больше не будет иметь этого.

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