如何向数据库写入的值比主键大10

问题描述

向表中加入数据,主键位ID,自动增长。有一个字段:积分,想每次插入的数据时,积分都是对应的主键大10.该这么写呢,存储过程,SQL语句都可以。

解决方案

解决方案二:
存储过程添加数据后,updatetableset积分=(SELECTMAX(ID)FROMTABLE)+10WHEREid=@IDENTITY
解决方案三:
DECLARE@TMPINTSELECT@TMP=MAX(ID)FROMTABLEINSERTINTOTABLEVALUES(XX,.....,@TMP)
解决方案四:
DECLARE@TMPINTSELECT@TMP=MAX(ID)FROMTABLEINSERTINTOTABLEVALUES(XX,.....,@TMP+10)
解决方案五:
1楼正解
解决方案六:
存储过程添加数据后,最好用事务控制updatetableset积分=id+10WHEREid=@IDENTITY
解决方案七:
declare@id1intifexists(selectmax(id)fromt1)beginselect@id1=max(id)+11fromt1insertintot1(column2)values(@id1)end其中id是主键,column2是积分列。你也可以用插入触发器。也很简单。
解决方案八:
一楼的思路是对的,不过他好像看错题了,应该是updatetableset积分=id+10WHEREid=@IDENTITY二楼的方法有问题,在多人争用时,有可能取到脏数据。同意五楼的,最好用事务处理。

时间: 2024-08-19 14:30:08

如何向数据库写入的值比主键大10的相关文章

主键值数据类型-informix数据库,不小心把主键值从int8改成float类型了

问题描述 informix数据库,不小心把主键值从int8改成float类型了 informix数据库,不小心把主键值从int8改成float类型了,然后值就变了.有人能帮忙看一下可能原因是什么吗? 解决方案 补充一下,数值由824变成800,转换的是informix数据库的主键值,由int8转为float

oracle数据库表中在没有主键的情况下如何删除重复记录

问题描述 oracle数据库表中在没有主键的情况下如何删除重复记录 数据库表没有主键,没有唯一性约束,如何删除重复记录呢?求大神解答. 解决方案 http://www.cosdiv.com/page/M0/S505/505957.htmlhttp://www.jb51.net/article/35593.htmhttp://www.newhua.com/2012/0106/141377.shtml 上面几篇文章你可以点击进去看看. 如果回答对你有帮助请采纳 解决方案二: delete from

不同数据库获取新增加的主键值

获取不同数据库新增记录主键值   数据库  获取新增主键值的SQL语句 DB2 INENTIY_VAL_LOCAL() Informix SELECT dbinfo('sqlca.sqlerrd1') FROM <Table> Sybase SELECT @@IDENTITY SQL Server SELECT SCOPE_IDENTITY()或SELECT @@IDENTITY MySQL SELECT LAST_INSERT_ID() HsqlDB CALL IDENTITY() Clou

Oracle数据库中创建自增主键的实例教程_oracle

在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现.创建表Student Create Table Student( id number(12) primary key, --通过序列和触发器实现id的自增 name varchar2(20) , age number(3) , sex number(1) ) 创建序列Sequence Create Sequence SEQ_S

删除数据库的所有存储过程、主键、外键、索引等

存储过程|数据|数据库|索引 --删除存储过程DECLARE @STRING VARCHAR(8000)WHILE EXISTS(SELECT NAME FROM SYSOBJECTS WHERE TYPE='P' AND STATUS>=0)BEGIN SELECT TOP 1 @STRING='DROP  PROCEDURE '+NAME  FROM   SYSOBJECTS    WHERE   TYPE = 'P' AND STATUS>=0 --SELECT @STRING EXEC

数据库模型设计——主键的设计

在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键.而对于一个表,由两部分组成:主键和属性.主键的简单定义就是表中为每一行数据的唯一标识.其实更准确的说法,每一行数据的唯一标识是候选键(Candidate Key),一个表中可以有很多个候选键,主键是候选键中的一个,主要用于更方便的检索和管理数据.一个表中可以有多个候选键,但是只有一个主键.由于主键常常用于检索数据,也用于表之间的关联,所以主键的设计的好坏将会严重影响数据操作的性能.下面来介绍下主键设计的几个考虑

如何区分SQL数据库中的主键与外键_MsSql

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的

PostgreSQL数据库中没有主键的表增加主键

PostgreSQL数据库测试环境中有多张表没有添加主键约束,只有一个serial的自增字段.现在需要把那些没有主键的表都加上,serial类型的字段为id . 首先是怎么找到PostgreSQL数据库中哪些表没有主键?我们看下pg_class这个表,里面有个relhaspkey字段,如果为t说明有主键,f即没有主键.例如下面这个sql . SELECT n.nspname AS "Schema",c.relname AS "Table Name",c.relhas

如何区分SQL数据库中的主键与外键

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的