Typecho Database Query Error问题

好吧、实际上是补前篇文章《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://www.cnblogs.com/leytton/p/8253274.html

你可能感兴趣的:(Typecho Database Query Error问题)