在我们有一个需求是更新某个表里面的某个字段,让这个字段变成一个递增的值,或者插入某个表中使得某些字段的值是递增的。下面我们来看看具体的操作:

更改表字段为递增

首先设置一个变量,初始值为任意数值,这里以0为例:

set @num:=0;

例如我们需要更新rank(排序)这个字段的值。我们可以这样处理

update tablename set rank=(@num:= @num+1)

添加主键

同时也可以给一个没有主键的数据表添加主键,例如给表test新加字段id,对这个id字段进行递增操作,然后再设置为主键。

SET @r:=0;
UPDATE test SET id=(@r:=@r+1);

插入递增数据

如果要是向一个表里面插入数据,可以如下操作,例如,我想向临时表temp表中插入数据,并且保证temp中rank字段是递增的,写法如下:

start TRANSACTION;
SET @rank:= 20;
INSERT into tbl_live_tab_relation(type, tab_id, relate_id, rank, source)
SELECT 2,1, id, @rank:= @rank + 1, 0
from tbl_live_room
WHERE status=1 and id not in (
SELECT relation.relate_id
from tbl_live_tab_relation as relation
WHERE relation.tab_id=1 AND relation.type=2
)
order by start_time DESC;
COMMIT;

mysql在插入或更新的时候对一个字段赋递增值的更多相关文章

  1. MySQL 自动插入、更新时间戳

    在 MySql 中,要做到自动出入当前时间戳,只要在定义表格时将字段的默认值设置为 CURRENT_TIMESTAMP 即可. 如: create table if not exists my_tab ...

  2. MYSQL数据插入和更新的语法

    tag:原文章地址 经常会遇到一行数据在特定条件下如果存在就更新列,不存在就插入新的行,用replace和duplicate语法都可以实现,但是也是有区别的.如果是数据覆盖就用replace,如果只是 ...

  3. MYSQL数据插入、更新及删除

    上文讲到创建数据表,本文介绍create table后的数据插入: 一.通过insert into ...values...插入 insert into tablename (column1,colu ...

  4. MySql数据库插入或更新报错:Cannot add or update a child row: a foreign key constraint fails

    具体报错信息: Cannot add or update a child row: a foreign key constraint fails (`xxx`.`AAA`, CONSTRAINT `t ...

  5. mysql中的升序和降序以及一个字段升序和一个字段降序

    mySql中,升序为asc,降序为desc.例如: 升序:select   *  from  表名 order by  表中的字段 asc(mysql中默认是升序排列,可不写) 降序:select   ...

  6. 将mysql中的一张表中的一个字段数据根据条件导入另一张表中

    添加字段:alter table matInformation add facid varchar(99)  default ''; 导入数据:update matInformation m set ...

  7. mysql,给每一条数据的某一个字段生成不同的随机数

    UPDATE t_article ta-- 利用LEFT JOIN的方式进行关联修改 LEFT JOIN(-- 先通过查询的方式给每一条数据生成对应的10-500之间随机数 SELECT articl ...

  8. 解决phalcon model在插入或更新时会自动验证非空字段

    在使用phalcon的insert和update功能时,因为数据库所有的字段设置的都是NOT NULL,而phalcon的model在插入或更新之前会自动判断字段是否需要必填,因此导致有空字段时无法存 ...

  9. java批量插入或更新的问题

    在批量插入或者更新中,setXXX的时候字段类型必须一致.例如:在普通sql中 pstmt8.setBigDecimal(j ,xxx);可以写成pstmt8.setString(j,xxx.toSt ...

随机推荐

  1. 用Github pages搭建自己制作的网页

    本文固定链接http://blog.csdn.net/pspgbhu/article/details/51205264 本人自学前端一个多月,写个几个网页想要用来应聘,网上搜各种搭建站点的方法.发现不 ...

  2. tomcat6url请求400错误(%2F与%5C)

    近期几天,开发接口时.tomcat报了400错误,查了下原因. 错误原因:url中參数部分包括/,默认tomcat是不支持url參数包括: /(%2F),\(%5C). 解析方法:能够通过加入配置Do ...

  3. python从sqlite中提取数据到excel

    import sqlite3 as sqlite from xlwt import * import sys def sqlite_get_col_names(cur, select_sql): cu ...

  4. cocos2d-js 粒子系统使用自定义图片,还原原来的图片宽高

    粒子系统使用自定义图片很简单只需要在plist最后一行设置png的名称即可.但是,在实际使用中,发现自定义图片无法使用原来的形状,例如设置了一长条的图片,结果出来确实一个个圆球. 翻了plist和cc ...

  5. oracle 12c 官方文档 及软件下载

    oracle 12c 官方文档 http://www.oracle.com/pls/db121/homepage oracle 12c 软件下载 http://www.oracle.com/techn ...

  6. 小结java自带的跟锁相关的一些类

    java.util.concurrent包下的一些跟锁相关的类列表  类  简介 locks.Lock接口 Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作.此 ...

  7. web-app_2_5.xsd内容

    <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://w ...

  8. sort.js

    JavaScript to achieve the ten common sorting algorithm library 1 ; (function (global, factory) { // ...

  9. ios中键盘处理(二)

    设置UIscrollview的背景代码 - (UIImage *) ImageWithColor: (UIColor *) color frame:(CGRect)aFrame { UIGraphic ...

  10. 有可能挑战Java优势的四种技术

    2012-02-22  Java是一种杰出的产业开发语言,这是因为它带来了伟大的统一和对事实上以前并不存在的重要标准的关注.但是和所有语言一样,Java将来也会褪色.依据我做的超越Java的研究,一个 ...