我在 oracle 中制作了一个表,它使用自动递增字段的完整顺序。
这是sql:
CREATE TABLE Users(
user_ID INT NOT NULL,
user_name VARCHAR (20) NOT NULL,
user_password VARCHAR (20) NOT NULL,
user_role INT NOT NULL,
PRIMARY KEY (user_ID)
);
ALTER TABLE Users
ADD FOREIGN KEY (user_role) REFERENCES User_Roles (role_ID);
CREATE SEQUENCE seq_users
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
现在我需要通过java程序将数据插入到表中,有什么办法,我不必像这样使用查询:
Insert into User_Roles values (seq_user_roles.nextval,'system admin');
User Role Table:
CREATE TABLE User_Roles(
role_ID INT NOT NULL,
role_name VARCHAR (20) NOT NULL,
PRIMARY KEY (role_ID)
);
CREATE SEQUENCE seq_user_roles
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
我想从 java 程序中插入数据,但无法指定序列的名称。
最佳答案
Crete below 在序列创建后触发。因此它会将日期填充到您的列中。并且无需在插入语句脚本中提及 role_id 列。
CREATE OR REPLACE TRIGGER TRG_User_Roles_BRI
BEFORE INSERT
ON User_Roles
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
:NEW.role_ID := seq_user_roles.NEXTVAL;
END;
关于java - Oracle sql 添加自增字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31934114/