Migrate database engine from MySQL to SQLite: Difference between revisions
Jump to navigation
Jump to search
(→Notes) Tags: Mobile edit Mobile web edit |
mNo edit summary |
||
Line 4: | Line 4: | ||
* Replace the following functions | * Replace the following functions | ||
** Replace MySQL [https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_char-length CHAR_LENGTH] function with SQLite [https://www.sqlitetutorial.net/sqlite-functions/sqlite-length/#targetText=SQLite%20Length,returns%20the%20number%20of%20bytes. Length] function<ref>[https://github.com/owncloudarchive/mozilla_sync/issues/47 sqlite does not have CHAR_LENGTH function · Issue #47 · owncloudarchive/mozilla_sync]</ref> | ** Replace MySQL [https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_char-length CHAR_LENGTH] function with SQLite [https://www.sqlitetutorial.net/sqlite-functions/sqlite-length/#targetText=SQLite%20Length,returns%20the%20number%20of%20bytes. Length] function<ref>[https://github.com/owncloudarchive/mozilla_sync/issues/47 sqlite does not have CHAR_LENGTH function · Issue #47 · owncloudarchive/mozilla_sync]</ref> | ||
** Replace MySQL {{kbd | key=IF}} function with SQLite {{kbd | key=CASE}} function | ** Replace MySQL {{kbd | key=IF}} function with SQLite {{kbd | key=CASE}} function<ref>[https://www.sqlitetutorial.net/sqlite-case/ SQLite CASE Expression: Simple CASE & Search CASE]</ref> | ||
** Replace MySQL {{kbd | key=LOCATE}} function<ref>[https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_locate MySQL :: MySQL 8.0 Reference Manual :: 12.5 String Functions and Operators]</ref> with SQLite INSTR {{kbd | key=CASE}} function<ref>[https://www.sqlitetutorial.net/sqlite-functions/sqlite-instr/ SQLite INSTR]</ref> | ** Replace MySQL {{kbd | key=LOCATE}} function<ref>[https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_locate MySQL :: MySQL 8.0 Reference Manual :: 12.5 String Functions and Operators]</ref> with SQLite INSTR {{kbd | key=CASE}} function<ref>[https://www.sqlitetutorial.net/sqlite-functions/sqlite-instr/ SQLite INSTR]</ref> | ||
Revision as of 16:41, 4 November 2019
Notes
- Remove database name from SQL query: SQLite will consider the database name as table name
- In MySQL, string are able to quoted with single quote symbol ' or double quote symbol ". In SQLite the string quoted with double quote symbol will be considered as column name! It will cause the problem: "no such column: xxx"
- Replace the following functions
-- MySQL LOCATE(substr,str), LOCATE(substr,str,pos) -- SQLite INSTR(string, substring);
- Other functions not supported: SET