|
|
楼主 |
发表于 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 触发器结束标识,必须保留以完成编译 |
|