|
|
select *from Lj_zx_user_web for update
CREATE TABLE Lj_zx_user_web (
ID NUMBER(10) NOT NULL, -- 仅定义字段类型和非空,自增由后续序列+触发器实现
UserName VARCHAR2(50) NULL,
PassWord VARCHAR2(50) NULL,
PassWord2 VARCHAR2(2000) NULL,
notes VARCHAR2(50) NULL,
GAP NUMBER(10) NULL
);
-- (可选)给ID添加主键约束
ALTER TABLE Lj_zx_user_web ADD CONSTRAINT pk_lj_zx_user_web_id PRIMARY KEY (ID);
-- 第三步:创建序列 seq_lj_zx_user_web_id,用于提供自增ID
CREATE SEQUENCE seq_lj_zx_user_web_id
START WITH 1 -- 序列起始值为 1(对应第一条数据ID=1)
INCREMENT BY 1 -- 序列步长为 1(每次自增1)
MINVALUE 1 -- 序列最小值为 1
NOMAXVALUE -- 序列无最大值(一直自增,直到NUMBER(10)上限)
NOCYCLE -- 不循环(达到上限后报错,不重置为最小值)
NOCACHE -- 不缓存序列值(小型表推荐,避免异常关闭数据库丢失缓存值)
-- 第四步:创建触发器 trg_lj_zx_user_web_id,插入数据时自动赋值ID
CREATE OR REPLACE TRIGGER trg_lj_zx_user_web_id
BEFORE INSERT ON Lj_zx_user_web -- 触发时机:向该表插入数据之前
FOR EACH ROW -- 行级触发器:每插入一行数据就执行一次
BEGIN
-- 核心逻辑:将序列的下一个值赋值给新插入行的 ID 字段
SELECT seq_lj_zx_user_web_id.NEXTVAL INTO :NEW.ID FROM DUAL;
END;
/ -- 触发器结束标识(Oracle 环境中必须添加,用于提交触发器编译)
|
|