"Sequence generated" 未按顺序显示?甲骨文表格
"Sequence generated" Is Not Shown to be in Order? Oracle forms
如果有任何方法可以按("No",列)
中的顺序对该数据块进行排序,请提供帮助create table Citizens_lic
(
No NUMBER(10) ,
ID NUMBER(10)
constraint Citizens_ID_pk_1 PRIMARY KEY,
F_Name VARCHAR2(32) ,
M_Name VARCHAR2(32) ,
L_Name VARCHAR2(32) ,
DOB DATE ,
POB VARCHAR2(32) ,
GENDER VARCHAR2(32) ,
WORK_STATUS VARCHAR2(32) ,
Soc_status VARCHAR2(32) ,
ISS_DATE date ,
EXP_Date date
)
这是 table,这是序列:
CREATE SEQUENCE CITIZENS_LIC_NO_SEQ_1
START WITH 1
INCREMENT BY 1
这是触发器:
CREATE OR REPLACE TRIGGER CITIZENS_LIC_NO_TRIGG_1
BEFORE INSERT ON CITIZENS_LIC
FOR EACH ROW
BEGIN
SELECT CITIZENS_LIC_NO_SEQ_1.NEXTVAL
INTO :new.NO
FROM DUAL;
END;
尝试添加任何值,它会正常工作,但是当您从表单生成器添加值时,它会根据您的鼠标单击更改顺序
另一件事是当我尝试从 table 中删除任何内容时, 该序列破坏了顺序,删除的值及其序列号永远消失了!
可能表格的触发器帮助,但我不知道哪个好用
如果你想对数据块中的行进行排序,打开它的属性选项板,找到 ORDER BY
属性 并把你想要的任何东西放在那里。在你的情况下,它似乎是
order by no desc
当您在该数据块中执行查询时,结果将按 no
列降序排列。
截至删除行:当然会丢失。你期待什么?序列保证唯一但不是无缝的数字列表。注意它的缓存;您甚至不必删除任何行,但连续两个会话可能会产生间隙。这就是序列的工作方式;如果我是你,我会接受它。
如果你想创建无缝数字,你将不得不编写自己的代码,它不会像你想象的那么简单。您必须注意插入(很简单)、更新和删除。再次重申:坚持顺序。