orcle 中 sequence 只适用于主键吗
答案:3 悬赏:80 手机版
解决时间 2021-02-02 17:13
- 提问者网友:寂寞撕碎了回忆
- 2021-02-02 06:32
orcle 中 sequence 只适用于主键吗
最佳答案
- 五星知识达人网友:青尢
- 2021-02-02 06:58
select id,pid, sqid from (select *,rownum sqid from tablename
start with id='A1'
connect by prior pid = id) 首先,你用的引擎是innodb 吧,如果是innodb,本来就没有Myd和myi文件,只有myisam引擎的表才会有这俩文件。用show variables like '%engine%';看看你的默认引擎是什么。还有你每次建表时指定的engine是什么。
如果你确定自己用的是myisam引擎。myd,myi肯定跟frm放一起的。在data目录下,一个数据库的文件(frm,myd.myi)保存在一个与数据库同名的文件夹下。
你先看看数据库中有哪些database: 用show databases;
再看看你的data目录下的文件夹是否与之对应?
start with id='A1'
connect by prior pid = id) 首先,你用的引擎是innodb 吧,如果是innodb,本来就没有Myd和myi文件,只有myisam引擎的表才会有这俩文件。用show variables like '%engine%';看看你的默认引擎是什么。还有你每次建表时指定的engine是什么。
如果你确定自己用的是myisam引擎。myd,myi肯定跟frm放一起的。在data目录下,一个数据库的文件(frm,myd.myi)保存在一个与数据库同名的文件夹下。
你先看看数据库中有哪些database: 用show databases;
再看看你的data目录下的文件夹是否与之对应?
全部回答
- 1楼网友:一袍清酒付
- 2021-02-02 08:09
干别的也可以
可能用到得操作
Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.
下面介绍一下关于sequence 的生成,修改,删除等常用的操作:
1. 创建 Sequence
使用如下命令新建sequence(用户需要有CREATE SEQUENCE 或者CREATE ANY SEQUENCE权限):
CREATE SEQUENCE test_sequence INCREMENT BY 1 -- 每次加的个数据 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 CACHE 10 ; [注意] 如果设置了CACHE值,ORACLE将在内存里预先放置一些sequence,以使存取速度更快。cache里面的取完后,oracle自动再取一组到cache。 但是,使用cache可能会跳号, 当遇到数据库突然异常down掉(shutdown abort),cache中的sequence就会丢失. 因此,推荐在create sequence的时候使用 nocache 选项。
2. 使用 sequence:
sequence.CURRVAL -- 返回 sequence的当前值 sequence.NEXTVAL -- 增加sequence的值,然后返回 sequence 值
[注意] 第一次NEXTVAL返回的是初始值; 随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值
- 2楼网友:街头电车
- 2021-02-02 07:36
不是。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯