2016-03-10 2 views
1

Я хочу добавить столбец в таблицу в случае, если столбец не существует, но SQLite не кажется, чтобы обновить список столбцов в Androidстолбца таблицы не обновляется после Alter таблицы в SQLite

В настоящее время я» м с помощью:

DB.execSQL("alter table "+table_name+" add column "+column_name+" text"); 
DB.rawQuery("select * from "+table_name+" limit 1",null).getColumnNames(); 

но список возвращаемая строка из «getColumnNames» не содержит столбец я только что созданный, так что, когда я проверяю снова по той же колонке, она понимает столбец не существует, и пытается создать это снова, что вызывает исключение «дублированной колонки»

Thank s за любую помощь, это мой первый вопрос в SO :)

+0

Вы поместили свой код в onUpgrade? И вы увеличили версию базы данных? – Francesc

+0

Нет и нет. нужно ли мне? –

+0

Да, когда вы увеличиваете версию базы данных, при следующем запуске будет вызываться метод onUpgrade. Там вы запустите команду, чтобы изменить таблицу. – Francesc

ответ

0

Вам нужно увеличить номер базы данных, который будет вызывать onUpgrade при следующем запуске приложения. В вашем методе onUpgrade вы запускаете команду SQLite для изменения таблицы.

Для некоторых примеров см. here.

0

Попробуйте отказаться от результата первого запроса после команды «alter table» и использовать результат второго запроса. Это сработало для меня.

Смежные вопросы