Typecho Database Query Error问题

Typecho Database Query Error问题一、问题电脑重启后发现Typecho添加文章时报错DatabaseQueryError。二、分析分析原因发现添加到数据库里的文章cid为0,一看表结构发现cid

好吧、实际上是补前篇文章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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注