IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

从Mysql到Sqlite的迁移

EasyID 2009-11-16 09:19:15 累计浏览 5,458 次
本机暂存

导入Mysql数据表到Sqlite

TeamSNS有18张数据表,手工建立这种事情不是正常人能做到的.于是在网上找转换的脚本.结果只google到一个python的脚本,写得还挺烂.

这时候才感叹phpmyadmin的好用,其实Sqlite也有很多web管理界面,但是太多,所以质量参差不齐.这里强烈推荐SQliteManager,这个东东不但可以在线管理Sqlite,更能将Mysql的sql文件直接导入.实在是居家旅行必备之物.

Sqlite的版本

现在Sqlite的主流版本有2和3.彼此之间似乎是不兼容的.PHP5内置支持的SQlite版本是2,而要读写3的库,需要pdo支持.为了空间的兼容性,我选择了2.

Sqlite和Mysql的语法差异

  1. 标记为Not Null的字段必须非空或指定默认值,否则sql会报错.
  2. update的时候不能Limit 1,真是很奇怪的限制.
  3. 没有Unix_Timestamp之类的函数,但是可以直接用PHP写自定义函数.这个很好用,我以Sqlite创始人的名义保证.

和Mysql对应的函数

  1. mysql_real_escape_string - sqlite_escape_string
  2. mysql_query - sqlite_query / sqlite_exec
  3. mysql_insert_id - sqlite_last_insert_rowid
  4. mysql_error - sqlite_error_string
  5. mysql_errno - sqlite_last_error
  6. mysql_affected_rows - sqlite_changes

常用的就这么几个,其实用PDO来搞更方便一些.

另外说说对Sqlite的感受

从性能上比较意义不大,肯定没有Mysql好.

从功能上讲,对Sql已经支持得不错了,INSER OR 的语法很有新意,自定义函数是亮点,view和trigger暂时还没有尝试过.

另外Sqlite版本的应用可以做到免安装,这个是非常大的优势.

Sqlite版的TeamSNS可以很轻松的跑在各种支持php的嵌入式系统中,比如西部数据的网络硬盘盒,智器的SmartQ.

之前家里的盒子死活没装上Mysql让我一直很残念,现在终于大快人心了 …

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 用Hyer来进行网站的抓取 (累计阅读 158,251)
  2. 配置Nginx+uwsgi更方便地部署python应用 (累计阅读 107,164)
  3. MySQL数据库在实际应用一些方面的介绍 (累计阅读 36,398)
  4. 程序员技术练级攻略 (累计阅读 35,471)
  5. python实现自动登录discuz论坛 (累计阅读 32,834)
  6. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,164)
  7. Mysql监控指南 (累计阅读 21,351)
  8. python编程细节──遍历dict的两种方法比较 (累计阅读 20,371)
  9. 每个程序员都应该学习使用Python或Ruby (累计阅读 17,918)
  10. Chrome和goagent的配置方法,你懂的 (累计阅读 16,843)