社区
MS-SQL Server
帖子详情
主键ID是主动编号,我想在记录为10的记录 后面插入一条记录,不知道怎么做?
rayofdawn
2003-05-16 02:29:33
...全文
84
19
打赏
收藏
主键ID是主动编号,我想在记录为10的记录 后面插入一条记录,不知道怎么做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
happydreamer
2003-05-17
打赏
举报
回复
To rayofdawn ()
不好意思,没把思路写清楚,抱歉,以后注意
To HawaiiLeo(罗马数字)
不行, 不行, 不要这么称呼,水平还很差,其实这个方法也很笨的
看看各位还有什么好的解决方法
iainet
2003-05-17
打赏
举报
回复
如果现在记录是10的话,自动为11
如果小于10,用set identity_insert on,然后insert
如果已经大于10,可以将10后的依次向后移动!就是小黑说的!
select * into #temp from table
update table
set col1=a.col1,col2=a.col2
from (select * from #temp) a
where table.id>10 and a.id=a.id+1
pqc4391
2003-05-17
打赏
举报
回复
有必要吗?SQL里面对记录的具体顺序好象没什么要求,重要是索引建立.
doudouniwan
2003-05-17
打赏
举报
回复
SET IDENTITY_INSERT table on
insert into table (11,...)
SET IDENTITY_INSERT table off
a1n1
2003-05-16
打赏
举报
回复
mark1
HawaiiLeo
2003-05-16
打赏
举报
回复
聚集索引就是你插入数据的时候,数据库会自动给你排序。
如下:其中ID是聚集索引
ID name
1 tony
3 Leo
5 michel
你插入记录(2, 'jeck')
ID name
1 tony
2 jeck
3 Leo
5 michel
HawaiiLeo
2003-05-16
打赏
举报
回复
小黑大侠已经说清楚了。
--CLUSTERED是保证这个索引是聚集索引
CREATE CLUSTERED INDEX indexname on table(column)
SELECT * into #t FROM table
UPDATE table
SET col1=a.col1,col2=a.col2..
FROM
( SELECT * FROM #t) a
WHERE table.id = #t.id + 1 and table.id > 11 --使原11至以后的记录都加一
--然后插入id=11的记录 和原表的最后一条记录
INSERT INTO talbe (col1,col2...) SELECT col1,col2 .. FROM #t ORDER BY id DESC
rayofdawn
2003-05-16
打赏
举报
回复
11原来已有数据了,
怎么“要插入的字段的ID设置为11,
而11以后的ID全加一。”?
CrazyFor
2003-05-16
打赏
举报
回复
如果最大是10,会自动插入11
如果11空缺
可以用
SET IDENTITY_INSERT table on
insert into table (11,...)
SET IDENTITY_INSERT table off
而且你必须把ID字段设置为聚集索引
rayofdawn
2003-05-16
打赏
举报
回复
不大明白。
happydreamer
2003-05-16
打赏
举报
回复
CREATE CLUSTERED INDEX indexname on table(column)
SELECT * into #t FROM table
UPDATE table
SET col1=a.col1,col2=a.col2..
FROM
( SELECT * FROM #t) a
WHERE table.id=#t.id+1 and table.id>11
然后插入id=11的记录 和原表的最后一条记录
INSERT INTO talbe (col1,col2...) SELECT col1,col2 .. FROM #t ORDER BY id DESC
rayofdawn
2003-05-16
打赏
举报
回复
up
rayofdawn
2003-05-16
打赏
举报
回复
HawaiiLeo(罗马数字)
怎么使用聚集索引?
19191919
2003-05-16
打赏
举报
回复
补充:
如果11空缺
可以用
SET IDENTITY_INSERT table on
insert into table(自动编号字段(列)不可缺少,必须列出)
values(11,...)
SET IDENTITY_INSERT table off
rayofdawn
2003-05-16
打赏
举报
回复
问题是11不是空缺的。
psxfghost
2003-05-16
打赏
举报
回复
直接insert就是第十一条了啊!
如果你的字段是自动增长的话
caiyunxia
2003-05-16
打赏
举报
回复
SET IDENTITY_INSERT
允许将显式值插入表的标识列中。
语法
SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
参数
database
是指定的表所驻留的数据库名称。
owner
是表所有者的名称。
table
是含有标识列的表名。
caiyunxia
2003-05-16
打赏
举报
回复
如果最大是10,会自动插入11
如果11空缺
可以用
SET IDENTITY_INSERT table on
insert into table (11,...)
SET IDENTITY_INSERT table off
HawaiiLeo
2003-05-16
打赏
举报
回复
我认为(水平有限):
能插,但不在记录11,
除非你把ID字段设置为聚集索引,
而且使用触发器,在插入时把要插入的字段的ID设置为11,
而11以后的ID全加一。
Sql
插入
记录
返回
主键
id
有时候,我们的
主键
id
是自动生成的,然后
想
要
插入
记录
后,就取得这条
记录
的
id
,怎么
做
呢? 比如我现在的一个student表的字段为:
id
(PK autoIncrement), name, school, tel, password。这五个,现在我要
插入
一条
记录
,
id
是自动生成的, 不用传入。 应该这样: Connection conn = null; int
id
= 0; tr...
mysql
插入
记录
时,
主键
id
的三种处理方式:1、显式设置;2、查询出表中
主键
ID
最大值+1
做
为添加下
一条
数据的
主键
ID
;3、表结构设置
id
自增,
插入
时不需要设置
id
值
mysql
插入
记录
时,
主键
id
的三种处理方式: 1、显式设置; 2、查询出表中
主键
ID
最大值+1
做
为添加下
一条
数据的
主键
ID
; 3、表结构设置
id
自增,
插入
时不需要设置
id
值 建议使用查询出表中
主键
ID
最大值+1
做
为添加下
一条
数据的
主键
ID
方式
mysql不能导入
主键
为0的
记录
问题:数据偏移 背景: 我一个朋友前段时间
做
数据备份的时候,导出了一个库的数据,发现
主键
有为0 的
记录
。 他也没在意,然后在导入的时候发现,
主键
为0的
记录
发现了
主键
数据偏移。 自动的
插入
到了表的最后
一条
记录
。 原因分析: 1、因为在数据库表中
ID
采用了自增
ID
策略。默认情况下当
ID
是0或者null的时候,数据库会自动产生一个新的自增序列作为这条
记录
的
ID
。 这就是我们
插入
0值
ID
记...
【MySQL用法】MyBatis 多对多 中间表
插入
数据,添加
记录
后获取
主键
ID
1、需求内容 有一个很常见的需求,即添加
记录
后获取添加后的
主键
ID
,特别是在一次前端调用中需要
插入
多个表的场景。除了添加单条
记录
时获取
主键
值,有时候可能需要获取批量添加
记录
时各
记录
的
主键
值,MyBatis从3.3.1版本开始支持批量添加
记录
并返回各
记录
主键
字段值。 比如我在
做
这个员工管理系统的时候,由于user和role是多对多关系,且user
主键
是自增的,所有我们没办法提前知晓这个user_...
数据库
主键
ID
自增,两种方法获取
插入
数据库那条数据自动生成的
主键
ID
值
在开发过程中,我们可能会遇到这样的一种情况,我们保存
一条
数据。如果这条数据的
主键
ID
是由用户决定的,这样我们在获取
主键
ID
的时候,只需要让前端的同时传递给我们就可以了;如果
主键
ID
设置为自增,是在用户新增数据操作时自动生成的,在后续业务逻辑中需要使用生成的
主键
ID
值,我们又该如何获取呢?本篇我们就来说说两种常用方法获取自动生成的
主键
ID
;
MS-SQL Server
34,872
社区成员
254,640
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章