先插入地区字段SQL
-- ----------------------------
-- Table structure for LF_AREA
-- ----------------------------
DROP TABLE "RICHARD"."LF_AREA";
CREATE TABLE "RICHARD"."LF_AREA" (
"ID" NUMBER(6) NOT NULL ,
"NAME" VARCHAR2(64 BYTE) ,
"PARENT_ID" NUMBER(6) DEFAULT 0 ,
"IEVEL" NUMBER(1) DEFAULT 1 ,
"LIST_ORDER" NUMBER(6) DEFAULT 10000 ,
"STATUS" NUMBER(1) DEFAULT 0
)
TABLESPACE "USERS"
LOGGING
NOCOMPRESS
PCTFREE 10
INITRANS 1
STORAGE (
INITIAL 65536
NEXT 1048576
MINEXTENTS 1
MAXEXTENTS 2147483645
BUFFER_POOL DEFAULT
)
PARALLEL 1
NOCACHE
DISABLE ROW MOVEMENT
;
COMMENT ON COLUMN "RICHARD"."LF_AREA"."NAME" IS '地区名称';
COMMENT ON COLUMN "RICHARD"."LF_AREA"."PARENT_ID" IS '地区父级';
COMMENT ON COLUMN "RICHARD"."LF_AREA"."IEVEL" IS '地区层级';
COMMENT ON COLUMN "RICHARD"."LF_AREA"."LIST_ORDER" IS '排序';
COMMENT ON COLUMN "RICHARD"."LF_AREA"."STATUS" IS '状态';
-- ----------------------------
-- Records of LF_AREA
-- ----------------------------
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10002', '黑龙江省', '0', NULL, NULL, '0');
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10003', '哈尔滨市', '10002', '1', '10000', '1');
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10004', '双鸭山市', '10002', '1', '10000', '1');
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10005', '道里区', '10003', '1', '10000', '1');
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10006', '南岗区', '10003', '1', '10000', '1');
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10007', '尖山区', '10004', '1', '10000', '1');
INSERT INTO "RICHARD"."LF_AREA" VALUES ('10008', '四方台区 ', '10004', '1', '10000', '1');
-- ----------------------------
-- Primary Key structure for table LF_AREA
-- ----------------------------
ALTER TABLE "RICHARD"."LF_AREA" ADD CONSTRAINT "LF_AREA_PK" PRIMARY KEY ("ID");
-- ----------------------------
-- Triggers structure for table LF_AREA
-- ----------------------------
CREATE TRIGGER "RICHARD"."tig_area" BEFORE INSERT ON "RICHARD"."LF_AREA" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW WHEN (NEW.id IS NULL)
BEGIN
SELECT seq_area.NEXTVAL INTO :NEW.id FROM dual;
END;
/
LEVEL:查询节点层次,从1开始。
CONNECT_BY_ISLEAF:查询节点是否是叶子节点,是则为1,不是则为0
SELECT id,name,parent_id,LEVEL, CONNECT_BY_ISLEAF FROM LF_AREA START WITH id=10002 CONNECT BY PRIOR ID=PARENT_ID ORDER BY ID