我正在处理一个需求,我需要在一行上填充一个uniqueconstant标识符,该行是经理行,在每个部门中都是唯一的。我的表结构是
CREATE
TABLE TEST_ORGANIZATION
(
EMPLOYEE_ID NUMBER NOT NULL,
MANAGER_ID NUMBER,
FIRST_NAME VARCHAR2(256),
DEPARTMENT_ID VARCHAR2(28) NOT NULL,
UUID VARCHAR2(28) ,
PRIMARY KEY(UUID)
);
此表包含以下信息。
部门员工经理第一个名字财务员工约翰Bradmon2财务雇员2雇员1人力资源3财务雇员3雇员1人力资源4财务雇员4雇员1人力资源管理5财务雇员5人力资源6会计雇员6 Stacyradmon7会计雇员7 Jordanmon8会计雇员8雇员6人力资源6会计雇员6人力资源10会计雇员6 Gordan
我想向表中添加另一列,以便仅向经理提供序列( where Manager_ID is null
). 但是,序列应该按照
DEPARTMENT_ID ALTER TABLE TEST_ORGANIZATION ADD SEQUENCE_ID NUMBER
UUID部门\员工\经理\第一个\名字顺序\管理1财务员工1约翰B12财务员工2员工1人力资源财务员工3员工1人力资源财务员工4员工1人力资源财务员工4员工1人力资源财务员工5人力资源财务员工6人力资源财务员工8人力资源财务员工8人力资源财务员工6人力资源会计员工6人力资源会计员工6人力资源会计员工10人力资源会计员工10
我尝试使用oracle12/19c之后添加的sequence和identity列。
我可以通过编程从后端服务和更新它 SEQUENCE_ID
使用 Select NVL(MAX(SEQUENCE_ID), 0) + 1 FROM TEST_ORGANIZATION WHERE MANAGER_ID is NULL AND DEPARTMENT_ID = ?
查询。但是,我想知道在oracle19c中是否有任何函数可以处理数据库本身的这种行为。
1条答案
按热度按时间qnyhuwrf1#
试试这个: