当前位置:首页 > 文章 > 帝国CMS > 正文内容

帝国CMS新闻文章数据表自增列中间插入一行数据自增ID继续连续的方法

3年前 (2022-10-21)帝国CMS4039

如何在自增数据表内插入一行数据,而且要让ID继续连续!那么有小伙伴会问:直接去数据库改ID不就完事了么?先不说自增ID让不让直接改,就算让改,小说如果有几千章节那不是累死了!

所以解决方案我记录一下:以下案例使用帝国CMS新闻NEWS表做范例。(注意备份你的数据库,切记!)

首先我们要解决自增列不能改动ID的问题,使用如下数据库命令:(为什么是3条?答:帝国CMS如果要改动一条内容数据就要涉及到3个表。语句每行是一个,请一条条执行!)

  ALTER TABLE `phome_ecms_news` CHANGE id id INT(10) UNSIGNED NOT NULL ; ALTER TABLE `phome_ecms_news_index` CHANGE id id INT(10) UNSIGNED NOT NULL ; ALTER TABLE `phome_ecms_news_data_1` CHANGE id id INT(10) UNSIGNED NOT NULL ;

然后我们要取消ID主键问题:

  alter table phome_ecms_news modify id int(10),drop primary key; alter table phome_ecms_news_index modify id int(10),drop primary key; alter table phome_ecms_news_data_1 modify id int(10),drop primary key;

继续,我们查看需要插入的数据之后的ID号:比如说ID:88 后面要插入数据,那么我们就要把ID为88后面所有的ID号都+1,我们才能插入一个ID:89。 (也就让原来的89变成了90, 90变成了91……)

需要用的语句为:

  update phome_ecms_news set id=id+1 where id>88; update phome_ecms_news_index set id=id+1 where id>88; update phome_ecms_news_data_1 set id=id+1 where id>88;

继续:现在我们发布一个信息,就是需要补的那个信息,当然也可以是已经发布过的。我们找到这个文章的ID并记住这个ID,比如说ID为666。

那么我们要把这个ID变成89了!语句:

  update phome_ecms_news set id=89 where id=666; update phome_ecms_read_zj_index set id=89 where id=666 update phome_ecms_read_zj_data_1 set id=89 where id=666

这样我们就搞定了插入了!下面再把主键和自增改回去!

恢复主键:

  alter table phome_ecms_news add primary key(id); alter table phome_ecms_news_index add primary key(id); alter table phome_ecms_news_data_1 add primary key(id);

恢复自增:

  ALTER TABLE `phome_ecms_news` CHANGE id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `phome_ecms_news_index` CHANGE id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT; ALTER TABLE `phome_ecms_news_data_1` CHANGE id id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;

OK了全部搞定了!记得最后在后台-系统-数据更新-更新信息页地址-选择你的数据表,按照ID更新(重要),然后再去生成首页 栏目和所有内容(全部更新打钩),要不然内容URL地址是不会变的哦!

扫描二维码推送至手机访问。

版权声明:本文由蓝博发布,如需转载请注明出处。

本文链接:https://www.blueboss.cn/p/569.shtml

“帝国CMS新闻文章数据表自增列中间插入一行数据自增ID继续连续的方法” 的相关文章

帝国CMS做单页自定义页面怎么调用

帝国CMS做单页自定义页面怎么调用

做帝国cms模板网时候,经常需要使用到自定义页面,例如我们做单页(比如“公司介绍”、“联系我们”,联系我们等页面)时一般采用自定义页面的方式来做,那么帝国CMS自定义页面怎么调用呢? 调用出自定义页面导航可以用标签SQL调用。如下: 例子1:调用自定义页面分类ID=1的页面导航 [e:loop={...

帝国CMS列表内容模板(list.var)调用会员头像会员名称等

帝国CMS列表内容模板(list.var)调用会员头像会员名称等

帝国CMS列表内容模板的list.var里面怎么调用会员头像。会员名称,文章标题和文章链接呢?其实方法也很简单,下面帝国cms模板网就来为大家分享: 标签代码如下: $userr=$empire->fetch1("select userpic  from {$dbtbpre}enewsmem...

帝国CMS自定义页面用PHP获取页面ID页面名称标题关键词描述内容等变量

帝国CMS自定义页面用PHP获取页面ID页面名称标题关键词描述内容等变量

帝国CMS自定义页面模板里面怎么调用页面名称,页面标题,关键词,描述,内容的方法! 方法一、获取自定义页面的页面ID,用以下代码: <?php    $pageid=str_replace("page","",$classid); ?> 在帝国CMS中,自定义页面的页面ID好像是唯一开...

帝国CMS内容页调用指定ID的文章可以指定多篇

帝国CMS内容页调用指定ID的文章可以指定多篇

帝国CMS内容页中调用多篇指定id文章的方法,下面一起来学习学习吧: 大概的思路是: 新建1个产品文章字段,这样的话,每个产品里面都可以填写不同的产品id,然后在模板里面调用出来即可。 下面附上内容页模板里面调用多篇指定文章id的php代码: <?php $sql='id in ('.$na...

帝国CMS灵动标签调用子栏目及子栏目信息

帝国CMS灵动标签调用子栏目及子栏目信息

帝国CMS灵动标签调用子栏目及子栏目信息的方法 代码如下: <ul class="cp0_ul">  [e:loop={"select classid,classname from {$dbtbpre}enewsclass where bclassid=8 order by myord...

帝国CMS内容页字段为空判断的用法

帝国CMS内容页字段为空判断的用法

帝国CMS内容页中,如果某个字段没有填写内容就不显示,填写了就正常显示,这种效果怎么实现? PHP判断实现,代码如下: <?php if($navinfor[字段名]) { ?> 现在的内容 <? } else { ?> 不显示 <? } ?>...