社区
Oracle
帖子详情
求救:Sequence和主键有什么区别?
INTEL_CHIP
2010-05-28 12:37:22
既然同一个Sequence作用于不同的表会造成这些表中主键的不连续,那Sequence还有什么用?我直接每张表都设置一个主键不就可以了吗,插入记录的时候还不用每张表都指定Sequence。
有没有什么办法设置一下,让数据库下面所有的表都共用一个Sequence,这样Insert记录的时候还不用每次都指定Sequence,并且每张表都独立地获取nextval,不过这样的话不就和主键的概念相同了吗,要Sequence还有什么用啊?!
...全文
577
10
打赏
收藏
求救:Sequence和主键有什么区别?
既然同一个Sequence作用于不同的表会造成这些表中主键的不连续,那Sequence还有什么用?我直接每张表都设置一个主键不就可以了吗,插入记录的时候还不用每张表都指定Sequence。 有没有什么办法设置一下,让数据库下面所有的表都共用一个Sequence,这样Insert记录的时候还不用每次都指定Sequence,并且每张表都独立地获取nextval,不过这样的话不就和主键的概念相同了吗,要Sequence还有什么用啊?!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
心中的彩虹
2010-05-28
打赏
举报
回复
[Quote=引用楼主 intel_chip 的回复:]
既然同一个Sequence作用于不同的表会造成这些表中主键的不连续,那Sequence还有什么用?我直接每张表都设置一个主键不就可以了吗,插入记录的时候还不用每张表都指定Sequence。
有没有什么办法设置一下,让数据库下面所有的表都共用一个Sequence,这样Insert记录的时候还不用每次都指定Sequence,并且每张表都独立地获取nextval,不过这样的话不就和主键的概念相……
[/Quote]
Sequence 只是个序列 等于mssql的自增列
主键是主键 两码事
唯有共同点就是唯一
LingXX0103
2010-05-28
打赏
举报
回复
你当然可以不用sequence作为你表的主键的
如果你想表取得的sequence连续 那么就每个表对应一个sequence表(稍微麻烦一点)
INTEL_CHIP
2010-05-28
打赏
举报
回复
我用的就是Oracle
INTEL_CHIP
2010-05-28
打赏
举报
回复
[Quote=引用 6 楼 duqiangcise 的回复:]
oracle中对用户来说没有默认的sequence这样的说法,你不创建sequence,oracle是不会自己给你创建的。
比如你有表t(id)--其中的id表示该表的主键。
你可以这样插入insert into t(id)values(yoursequence_name.nextval);
红色部分是你创建的序列名称。nextval得到该序列的下一个值。即:yoursequence_name.nextval就产生了你想要的主键的值。
[/Quote]
每张表插入记录都要显式指定Sequence的nextval值作为主键值 ?
duqiangcise
2010-05-28
打赏
举报
回复
[Quote=引用 4 楼 intel_chip 的回复:]
引用 1 楼 duqiangcise 的回复:
所以大家通常产生主键值都是通过oracle数据库的序列来完成的)。
好像数据库下面我没建Sequence的话,或者Insert的时候我没有指定Sequence的时候,数据表中主键的值照样都是从1开始的啊,每个用户模式是不是有默认Sequence之说的?表的主键值从哪里来的?
[/Quote]
请问你用的是oracle吗?如果不是用的oracle的话,就当我上面的没有说。
oracle中对用户来说没有默认的sequence这样的说法,你不创建sequence,oracle是不会自己给你创建的。
比如你有表t(id)--其中的id表示该表的主键。
你可以这样插入insert into t(id)values(
yoursequence_name
.nextval);
红色部分是你创建的序列名称。nextval得到该序列的下一个值。即:yoursequence_name.nextval就产生了你想要的主键的值。
Phoenix_99
2010-05-28
打赏
举报
回复
补充:
1.主键可能有多个
2.如果用id的话,用序列给id赋值,比较灵活,也好管理
INTEL_CHIP
2010-05-28
打赏
举报
回复
[Quote=引用 1 楼 duqiangcise 的回复:]
所以大家通常产生主键值都是通过oracle数据库的序列来完成的)。
[/Quote]
好像数据库下面我没建Sequence的话,或者Insert的时候我没有指定Sequence的时候,数据表中主键的值照样都是从1开始的啊,每个用户模式是不是有默认Sequence之说的?表的主键值从哪里来的?
iqlife
2010-05-28
打赏
举报
回复
SEQUENCE就是SQL SERVER里的自增序列ID,只不过ORACLE用编程的方式给出了而已,并且更加灵活
可以多个表共用一个自增序列,也可以每个表一个自增序列....
duqiangcise
2010-05-28
打赏
举报
回复
要Sequence还有什么用啊?!
sequence序列帮助你维护生成的主键值的唯一性!
duqiangcise
2010-05-28
打赏
举报
回复
主键和序列是两个不相关的概念。
主键能够唯一标识一条记录,用来区分每条记录。
序列能够产生唯一标识的值。你可以用序列产生的值,作为主键的值。其实你如果不想用序列也可以。
不过这样的话,你就需要通过程序(如java)自己产生出一个唯一标识用来作为主键的值(这样做比较麻烦,所以大家通常产生主键值都是通过oracle数据库的序列来完成的)。
对!如果一个序列被几个表引用去作为主键生成器,这样会造成每个表中主键值的不连续性。但主键只是个标识,它是否连续并不影响你什么(除非你业务要求主键值必须连续)!
java面试题,看我这篇就够了,前端后台应有尽有,包你通过面试
HTML&CSS部分 1、HTML中定义表格的宽度用80px和80%的
区别
是什么? PX标识像素,%标识整个父标签宽度百分比 2、CSS样式定义优先级顺序是? 内联样式最高优先权,然后是内部样式,然后才是外部样式 3、div和span的
区别
? DIV 和 SPAN 元素最大的特点是默认都没有对元素内的对象进行任何格式化渲染。主要用于应用样式表(共同点)。 两者最明显的
区别
在于DIV...
9月18日19:00龙旗科技,2024届校招空宣等你来!
题目:输入一个只包含'a','b','c'的字符串,问'a','b','c'分别出现了多少次。刚睡醒来了个长安汽车电话面试,吓我一跳根本没准备,回答的一般,最后他说人力那边让我打个电话要我咨询反馈一下怎么怎么样,我就直接说好的好的拜拜,我以为要挂电话了,内推码:zmnmew,内推码:zmnmew,内推码:zmnmew,也可直接扫码下面二维码投递,简历快人一步,offer快人一步!投的是网络攻防,面试官来的是大数据,问了很多密码学的东西,距离我上次接触密码学已经四年了,答得稀烂。3、使用指定的自动化测试工。
电脑硬件故障维护小全
【主板故障】是整个电脑的关键部件,在电脑起着至关重要的作用。如果主板产生故障将会影响到整个PC机系统的工作。下面,我们就一起来看看主板在使用过程中最常见的故障有哪些。 常见故障一:开机无显示 电脑开机无显示,首先我们要检查的就是是BIOS。主板的BIOS中储存着重要的硬件数据,同时BIOS也是主板中比较脆弱的部分,极易受到破坏,一旦受损就会导致系统无法运行,出现此类故障一般是因为主板B
webmagic采集CSDN的Java_WebDevelop页面
使用webmagic采集博客类的网站示例
大家一起学电脑之硬件版
大家一起学电脑之硬件版首先文章还是先从硬件的认识开始,再到安装操作系统的注意事项,再到进入与退出系统可能发生的情况与问题,然后再说单个硬件的详解,最后再说故障和技巧吧。晕,因为有些文章因为发现的晚,所以排序有点儿乱了,0:38 02-11-29 目 录PC 机的组成一 PC 机的组成二 手把手教你硬盘分区格式化 作者:徐万千 WINDOWS98安装参数详解 怎样自动安装WINDOWS98 WinM
Oracle
17,140
社区成员
55,260
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章