好吧、实际上是补前篇文章《Typecho SQLite与MySQL的数据库切换…》的坑
【本文出处: http://blog.csdn.net/leytton/article/details/71694581】
一、问题
电脑重启后发现Typecho添加文章时报错Database Query Error。
二、分析
分析原因发现添加到数据库里的文章cid为0,一看表结构发现cid没有自增属性,而在Typecho的install目录中查看Mysql.sql文件里的语句是有自增属性的,由于SQLite内部本来就会为每个表加上一个rowid,在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1,因此Typecho没有在SQLite数据库里设置自增属性。Navicat Premium在把SQLite里的数据结构迁移到Mysql数据库里就会导致没有自增属性。此外SQLite数据库的某些字段属性也与MySQL不一样。
三、解决
法1:查看Mysql.sql里的语句,把缺失的属性修正
法2:按照TypechoMysql数据库安装方式重新安装一次、对比数据结构进行修正
法3:按照TypechoMysql数据库安装方式重新安装一次,再建一个数据库C,复制正确表结构到这个数据库,再把旧数据库的数据以SQL形式导出,导入到数据库C,把Typecho数据库切换成数据库C
法4:(推荐^_^)从一开始就用Mysql数据库吧,o(∩_∩)o 哈哈
四、遗留问题
为什么一开始没有这问题啊,难道是我切换数据库后就从来没添加过文章==
参考
《Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用》http://www.cnblogs.com/peida/archive/2008/11/29/1343832.html
Finally,不好意思求赞了、太尴尬了[手动捂脸]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37353.html