找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 243|回复: 1

用户菜单表

[复制链接]

381

主题

53

回帖

2165

积分

管理员

积分
2165
发表于 2026-1-30 09:57:56 | 显示全部楼层 |阅读模式
第一步:创建数据表(表名 Lj_zx_menu1,字段全英文)
sql
-- 创建 Lj_zx_menu1 表(Oracle 11g 适配版,字段全英文)
CREATE TABLE Lj_zx_menu1 (
    ID NUMBER(10) NOT NULL,  -- 自增主键,后续由序列+触发器实现
    Menu_Name VARCHAR2(50) NULL,  -- 对应原「菜单名称」
    Menu_Icon VARCHAR2(50) NULL,  -- 对应原「菜单图标」
    Menu_ID VARCHAR2(1000) NULL,  -- 对应原「菜单ID」
    Account_ID VARCHAR2(1000) NULL,  -- 对应原「账户ID」
    Icon VARCHAR2(100) NULL  -- 对应原「图标」
);
第二步:(可选)添加主键约束(保证 ID 唯一性)
sql
-- 为 Lj_zx_menu1 表的 ID 字段添加主键约束
ALTER TABLE Lj_zx_menu1 ADD CONSTRAINT pk_lj_zx_menu1_id PRIMARY KEY (ID);
第三步:创建对应序列(实现 ID 自增,对应 SQL Server 的 IDENTITY(1,1))
sql
-- 创建序列 seq_lj_zx_menu1_id,用于 Lj_zx_menu1 表 ID 字段自增
CREATE SEQUENCE seq_lj_zx_menu1_id
    START WITH 1        -- 起始值 1
    INCREMENT BY 1      -- 步长 1
    MINVALUE 1
    NOMAXVALUE
    NOCYCLE
    NOCACHE;            -- 小型表推荐 NOCACHE,避免数据库异常关闭丢失缓存序列值
第四步:创建触发器(插入数据时自动填充 ID 自增值)
sql
-- 创建触发器 trg_lj_zx_menu1_id,插入数据时自动为 ID 赋值
CREATE OR REPLACE TRIGGER trg_lj_zx_menu1_id
BEFORE INSERT ON Lj_zx_menu1  -- 针对 Lj_zx_menu1 表的插入操作触发
FOR EACH ROW                  -- 行级触发器,每插入一行执行一次
BEGIN
    -- 提取序列下一个值,赋值给新插入行的 ID 字段
    SELECT seq_lj_zx_menu1_id.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/  -- Oracle 触发器结束标识,必须保留以完成编译

381

主题

53

回帖

2165

积分

管理员

积分
2165
 楼主| 发表于 2026-1-30 10:04:36 | 显示全部楼层
第一步:创建数据表 Lj_zx_menu2(全英文字段,适配 Oracle 11g)
sql
-- 创建 Lj_zx_menu2 表(Oracle 11g 适配版,字段全英文)
CREATE TABLE Lj_zx_menu2 (
    ID NUMBER(10) NOT NULL,  -- 对应 SQL Server 的 int IDENTITY(1,1),自增由后续序列+触发器实现
    Menu_Name VARCHAR2(50) NULL,  -- 对应原「菜单名称」
    Icon VARCHAR2(100) NULL,  -- 对应原「图标」
    Link_Url VARCHAR2(100) NULL,  -- 对应原「链接地址」
    Tab_Title VARCHAR2(100) NULL,  -- 对应原「选项卡标题」
    Parent_ID VARCHAR2(50) NULL,  -- 对应原「父级ID」
    Account_ID VARCHAR2(100) NULL  -- 对应原「账户ID」
);
第二步:(可选)添加主键约束(保证 ID 唯一性)
sql
-- 为 Lj_zx_menu2 表的 ID 字段添加主键约束
ALTER TABLE Lj_zx_menu2 ADD CONSTRAINT pk_lj_zx_menu2_id PRIMARY KEY (ID);
第三步:创建序列(实现 ID 自增,对应 SQL Server 的 IDENTITY(1,1))
sql
-- 创建序列 seq_lj_zx_menu2_id,用于 Lj_zx_menu2 表 ID 字段自增
CREATE SEQUENCE seq_lj_zx_menu2_id
    START WITH 1        -- 起始值 1,对应 IDENTITY(1,1) 第一个 1
    INCREMENT BY 1      -- 步长 1,对应 IDENTITY(1,1) 第二个 1
    MINVALUE 1
    NOMAXVALUE
    NOCYCLE
    NOCACHE;            -- 小型表推荐 NOCACHE,避免数据库异常关闭丢失缓存序列值
第四步:创建触发器(插入数据时自动填充 ID 自增值)
sql
-- 创建触发器 trg_lj_zx_menu2_id,插入数据时自动为 ID 赋值
CREATE OR REPLACE TRIGGER trg_lj_zx_menu2_id
BEFORE INSERT ON Lj_zx_menu2  -- 针对 Lj_zx_menu2 表的插入操作触发
FOR EACH ROW                  -- 行级触发器,每插入一行执行一次
BEGIN
    -- 提取序列下一个值,赋值给新插入行的 ID 字段
    SELECT seq_lj_zx_menu2_id.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/  -- Oracle 触发器结束标识,必须保留以完成编译
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|久要宝盒 ( 皖ICP备18021237号 )

GMT+8, 2026-4-2 21:07 , Processed in 0.048428 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表