我是 Oracle 的新手,也是 Oracle Application Express 的新手。
我正在阅读手册,并且正在尝试创建一个包含 3 个字段的表:
USER_ID:编号、主键、自动编号
USER_NAME:VARCHAR2,唯一
密码:VARCHAR2
我使用 APEX SQL Workshop 向导创建表,但是当我尝试执行以下操作时:
INSERT INTO Schema.USERS (USER_NAME,PASSWORD) VALUES ('planet','password');
...我被告知违反了对主键的唯一约束。
表创建向导自动创建了一个触发器。它看起来像这样:
create or replace trigger "BI_USERS"
before insert on "USERS"
for each row
begin
if :NEW."USER_ID" is null then
select "USERS_SEQ".nextval into :NEW."USER_ID" from sys.dual;
end if;
end;
我的印象是,这会自动在 USERS 的 USER_ID 字段中找到最高数值,并自动为每个新的 INSERT 分配一个递增的值,但这似乎没有发生。
谁能建议我可能做错了什么?
非常感谢
pt