Android SQLite: Creating and updating rows from database
I've been using https://github.com/jgilfelt/android-sqlite-asset-helper library for pre-populated database in app. When I want to update multiple rows, the documentation said I should write sql script for that. Is there any other way for that because there are around 200+ rows I want to update. I can't replace the database with new one also because there're already user data in other tables in it.
add a comment |
I've been using https://github.com/jgilfelt/android-sqlite-asset-helper library for pre-populated database in app. When I want to update multiple rows, the documentation said I should write sql script for that. Is there any other way for that because there are around 200+ rows I want to update. I can't replace the database with new one also because there're already user data in other tables in it.
What kind of data rows you are updating?
– Zwal Pyae Kyaw
Nov 14 '18 at 4:49
add a comment |
I've been using https://github.com/jgilfelt/android-sqlite-asset-helper library for pre-populated database in app. When I want to update multiple rows, the documentation said I should write sql script for that. Is there any other way for that because there are around 200+ rows I want to update. I can't replace the database with new one also because there're already user data in other tables in it.
I've been using https://github.com/jgilfelt/android-sqlite-asset-helper library for pre-populated database in app. When I want to update multiple rows, the documentation said I should write sql script for that. Is there any other way for that because there are around 200+ rows I want to update. I can't replace the database with new one also because there're already user data in other tables in it.
asked Nov 14 '18 at 4:39
Arkar Min TunArkar Min Tun
415
415
What kind of data rows you are updating?
– Zwal Pyae Kyaw
Nov 14 '18 at 4:49
add a comment |
What kind of data rows you are updating?
– Zwal Pyae Kyaw
Nov 14 '18 at 4:49
What kind of data rows you are updating?
– Zwal Pyae Kyaw
Nov 14 '18 at 4:49
What kind of data rows you are updating?
– Zwal Pyae Kyaw
Nov 14 '18 at 4:49
add a comment |
2 Answers
2
active
oldest
votes
In short no, SQL is how you interact with the database.
However one single UPDATE could update every row.
Additionally there are convenience methods such as the update method that builds the SQL.
For example say you had a table named mytable which had a column called name and you wanted to change all occurrences of joe to Joseph then the SQL could be :-
String sql = "UPDATE mytable SET name = 'Joseph' WHERE name = 'joe'";
Now assuming that you had a an SQLiteDatabase instance named db then you could use :-
db.execSQL(sql);
Alternately you could use :-
String wherecluase = "name =?";
String whereargs = new String"joe";
ContentValues cv = new ContentValues();
cv.put("name","Joseph");
int rows_updated = db.update("mytable",cv,whereclause,whereargs);
- This builds and executes the SQL as above.
- This may seem to be more long-winded however there are advantages to using this method e.g.
- it returns the number of rows that were updated,
- it offfers protecting against SQL injection,
- it properly encloses/escapes data
- the SQL will be syntactically correct.
add a comment |
No. Its one way, but not the only way. Another good way is to send them the new data in a new database. Then after you download it, copy the data from the new database to the old one, using upsert mechanics. That would update data to the new information, without losing rows inserted by the user. Of course if you need to worry about changes made by the user, then you need to find some way to detect that and do conflict resolution.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293288%2fandroid-sqlite-creating-and-updating-rows-from-database%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
In short no, SQL is how you interact with the database.
However one single UPDATE could update every row.
Additionally there are convenience methods such as the update method that builds the SQL.
For example say you had a table named mytable which had a column called name and you wanted to change all occurrences of joe to Joseph then the SQL could be :-
String sql = "UPDATE mytable SET name = 'Joseph' WHERE name = 'joe'";
Now assuming that you had a an SQLiteDatabase instance named db then you could use :-
db.execSQL(sql);
Alternately you could use :-
String wherecluase = "name =?";
String whereargs = new String"joe";
ContentValues cv = new ContentValues();
cv.put("name","Joseph");
int rows_updated = db.update("mytable",cv,whereclause,whereargs);
- This builds and executes the SQL as above.
- This may seem to be more long-winded however there are advantages to using this method e.g.
- it returns the number of rows that were updated,
- it offfers protecting against SQL injection,
- it properly encloses/escapes data
- the SQL will be syntactically correct.
add a comment |
In short no, SQL is how you interact with the database.
However one single UPDATE could update every row.
Additionally there are convenience methods such as the update method that builds the SQL.
For example say you had a table named mytable which had a column called name and you wanted to change all occurrences of joe to Joseph then the SQL could be :-
String sql = "UPDATE mytable SET name = 'Joseph' WHERE name = 'joe'";
Now assuming that you had a an SQLiteDatabase instance named db then you could use :-
db.execSQL(sql);
Alternately you could use :-
String wherecluase = "name =?";
String whereargs = new String"joe";
ContentValues cv = new ContentValues();
cv.put("name","Joseph");
int rows_updated = db.update("mytable",cv,whereclause,whereargs);
- This builds and executes the SQL as above.
- This may seem to be more long-winded however there are advantages to using this method e.g.
- it returns the number of rows that were updated,
- it offfers protecting against SQL injection,
- it properly encloses/escapes data
- the SQL will be syntactically correct.
add a comment |
In short no, SQL is how you interact with the database.
However one single UPDATE could update every row.
Additionally there are convenience methods such as the update method that builds the SQL.
For example say you had a table named mytable which had a column called name and you wanted to change all occurrences of joe to Joseph then the SQL could be :-
String sql = "UPDATE mytable SET name = 'Joseph' WHERE name = 'joe'";
Now assuming that you had a an SQLiteDatabase instance named db then you could use :-
db.execSQL(sql);
Alternately you could use :-
String wherecluase = "name =?";
String whereargs = new String"joe";
ContentValues cv = new ContentValues();
cv.put("name","Joseph");
int rows_updated = db.update("mytable",cv,whereclause,whereargs);
- This builds and executes the SQL as above.
- This may seem to be more long-winded however there are advantages to using this method e.g.
- it returns the number of rows that were updated,
- it offfers protecting against SQL injection,
- it properly encloses/escapes data
- the SQL will be syntactically correct.
In short no, SQL is how you interact with the database.
However one single UPDATE could update every row.
Additionally there are convenience methods such as the update method that builds the SQL.
For example say you had a table named mytable which had a column called name and you wanted to change all occurrences of joe to Joseph then the SQL could be :-
String sql = "UPDATE mytable SET name = 'Joseph' WHERE name = 'joe'";
Now assuming that you had a an SQLiteDatabase instance named db then you could use :-
db.execSQL(sql);
Alternately you could use :-
String wherecluase = "name =?";
String whereargs = new String"joe";
ContentValues cv = new ContentValues();
cv.put("name","Joseph");
int rows_updated = db.update("mytable",cv,whereclause,whereargs);
- This builds and executes the SQL as above.
- This may seem to be more long-winded however there are advantages to using this method e.g.
- it returns the number of rows that were updated,
- it offfers protecting against SQL injection,
- it properly encloses/escapes data
- the SQL will be syntactically correct.
answered Nov 14 '18 at 5:33
MikeTMikeT
16.9k112642
16.9k112642
add a comment |
add a comment |
No. Its one way, but not the only way. Another good way is to send them the new data in a new database. Then after you download it, copy the data from the new database to the old one, using upsert mechanics. That would update data to the new information, without losing rows inserted by the user. Of course if you need to worry about changes made by the user, then you need to find some way to detect that and do conflict resolution.
add a comment |
No. Its one way, but not the only way. Another good way is to send them the new data in a new database. Then after you download it, copy the data from the new database to the old one, using upsert mechanics. That would update data to the new information, without losing rows inserted by the user. Of course if you need to worry about changes made by the user, then you need to find some way to detect that and do conflict resolution.
add a comment |
No. Its one way, but not the only way. Another good way is to send them the new data in a new database. Then after you download it, copy the data from the new database to the old one, using upsert mechanics. That would update data to the new information, without losing rows inserted by the user. Of course if you need to worry about changes made by the user, then you need to find some way to detect that and do conflict resolution.
No. Its one way, but not the only way. Another good way is to send them the new data in a new database. Then after you download it, copy the data from the new database to the old one, using upsert mechanics. That would update data to the new information, without losing rows inserted by the user. Of course if you need to worry about changes made by the user, then you need to find some way to detect that and do conflict resolution.
answered Nov 14 '18 at 6:42
Gabe SechanGabe Sechan
67.8k965100
67.8k965100
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293288%2fandroid-sqlite-creating-and-updating-rows-from-database%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What kind of data rows you are updating?
– Zwal Pyae Kyaw
Nov 14 '18 at 4:49