WordPress数据库基本结构及相关SQL语句

经过数天的努力,终于把原来学习日记数据库导入了wordpress数据库,wordpress版的学习日记正式开张。作为开张第一篇日记,是关于wordpress数据库的基本结构学习和一些导入相关的sql,供自己备忘和一些有此需求的朋友参考。还请朋友看见错误提示一下。谢谢。

wordpress数据库表基本结构:
wp_options:系统基本设置信息;
wp_users:注册用户基本信息;
wp_usermeta:注册用户附加信息,主要包括权限等设置;
wp_categories: 日记分类,友站链接(blogroll)也包含其中;分类之间也可以有从属关系;公开日记在category_count中计数,私人日记不计数;
wp_links:友站链接(blogroll);
wp_link2cat: 友站链接的分类;
wp_posts:日记,其中的上传的附件和图片也作为其中的记录,不过类别不同,与日记存在从属关系;其中有几个字段好像没用,如: post_category,post_parent
wp_post2cat:日记(包括附件)的分类;
wp_postmeta:日记中的一些附加信息,也包括上传附件的一些附加信息,自定义字段也存在这里,如:Jerome’s Keywords的tag属性就是保存在这里的;
wp_comments:评论,评论的游客的userid为0

方法:

在原学习日记的源码的基础上进行导入。

步骤:

1、在wordpress中建立分类(学习日记表:goalsgroup,article;wordpress表:wp_categories);
2、导入用户数据(学习日记表:user;wordpress表:wp_users,wp_usermeta);
3、导入日记数据(学习日记表:article,goalsgroup;wordpress表:wp_posts,wp_post2cat);

实施:

1、学习日记分类:

决定用原来学习日记的大分类作为现在个人blog的分类:

2、导入用户数据

从学习日记user表中读出一条记录,形成wordpress的wp_users和wp_usermeta表所需的数据

结果,在原学习日记源码的基础上,结合代码和SQL,完成数据导入。

以下是一些使用过的SQL语句,记在这里备忘。

1)、导入分类:

INSERT INTO `wordpress`.`wp_categories`(cat_ID, cat_name, category_nicename)
SELECT `learndiarydb`.`goalsgroup`.`groupID`+2, `learndiarydb`.`goalsgroup`.`groupName`, `learndiarydb`.`goalsgroup`.`groupName` FROM `learndiarydb`.`goalsgroup` WHERE 1

2)、导入日记或目标(下面是导入目标,在post_category中的是可见性标志,在原wordpress中这个字段好像是空置不用的,据可见性标志设置wordpress文章的可见性)

INSERT INTO `wordpress`.`wp_posts`(ID, post_author, post_date, 

post_content, post_title, post_category, post_modified, comment_count)

SELECT

`learndiarydb`.`article`.`articleID`,

`learndiarydb`.`article`.`userID`,

`learndiarydb`.`article`.`writeDate`,

`learndiarydb`.`article`.`articleText`,

`learndiarydb`.`article`.`articleName`,

`learndiarydb`.`article`.`visibility`,

`learndiarydb`.`article`.`lastUpdate`,

`learndiarydb`.`article`.`adviceSize`

FROM `learndiarydb`.`article`

WHERE `learndiarydb`.`article`.`typeID`=1

3)、在原数据库添加了分类的基础上导入日记的分类

INSERT INTO `wordpress`.`wp_post2cat`(post_id, category_id) 

SELECT

`learndiarydb`.`article`.`articleID`,

`learndiarydb`.`article`.`cat_ID`

FROM `learndiarydb`.`article`

WHERE `learndiarydb`.`article`.`typeID`=2

4)、导入目标所在分类

INSERT INTO `wordpress`.`wp_post2cat`(post_id, category_id)
SELECT
`learndiarydb`.`article`.`articleID`, 12
FROM `learndiarydb`.`article`
WHERE `learndiarydb`.`article`.`typeID`=1
5)、据一般时间减8小时得到gmt时间
UPDATE wp_posts
SET
`post_date_gmt`=DATE_SUB(`post_date`, INTERVAL 8 HOUR),
`post_modified_gmt`=DATE_SUB(`post_modified`, INTERVAL 8 HOUR)

6)、统计各分类公开日记的数目

INSERT INTO
select cat_ID,count(*)
from article
where visibility=0
group by cat_ID

7)、根据原日记所在的目标确定日记所有的tag,“分类”包括“目标”

SELECT
t1.articleName AS diaryName,
t1.typeID AS diaryType,
t2.articleName AS goalName,
t2.typeID AS goalType,
t2.tag AS articleTags
FROM `article` AS t1 , `article` AS t2
WHERE t1.typeID=2 AND t2.typeID=1 AND t1.parentID=t2.articleID

8)、把tag标记写入临时表

INSERT INTO temp( diaryID, diaryName, tags )
SELECT t1.articleID, t1.articleName, t2.tag
FROM `article` AS t1, `article` AS t2
WHERE t1.typeID =2
AND t2.typeID =1
AND t1.parentID = t2.articleID

9)、把tag标记插入wordpress数据库,用的是Jerome’s

Keywords v1.9

给日志增加Tags的。

INSERT INTO wordpress.wp_postmeta(`post_id`,`meta_key`,`meta_value`)

SELECT learndiarydb.temp.diaryID, “keywords”,learndiarydb.temp.tags

FROM learndiarydb.temp

10)、更新日记的guid字段


上一篇:使用Caddy在macOS上配置wordpress主题开发环境 下一篇:通过HTML使用WordPress构建您的网站的22个理由
  • 版权声明:内容来自互联网不代表本站观点,2018-05-14发表于 wordpress教程栏目。
  • 转载请注明: WordPress数据库基本结构及相关SQL语句| wordpress教程 +复制链接