Oracle自动增量
可能重复: 我在oracle中有一个表,我想让userid自动递增。。 一旦我使用sequence使其自动递增,并尝试使用procedure将其插入表中,我将sample.seq_userid放在哪里 如何插入用户ID?我必须在我的程序中申报吗Oracle自动增量,oracle,auto-increment,procedure,Oracle,Auto Increment,Procedure,可能重复: 我在oracle中有一个表,我想让userid自动递增。。 一旦我使用sequence使其自动递增,并尝试使用procedure将其插入表中,我将sample.seq_userid放在哪里 如何插入用户ID?我必须在我的程序中申报吗 PROCEDURE insertExample ( name_in IN sample.name%TYPE, age_in IN sample.age%TYPE ) IS BEGIN INSERT INTO
PROCEDURE insertExample
(
name_in IN sample.name%TYPE,
age_in IN sample.age%TYPE
)
IS
BEGIN
INSERT INTO sample
(name, age)
VALUES
(name_in, age_in);
END insertExample;
这是我的更新
PROCEDURE updateExample
(
userid_in IN sample.userid%TYPE,
name_in IN sample.name%TYPE,
age_in IN sample.age%TYPE
)
IS
BEGIN
UPDATE sample
SET name = name_in,
age = age_in
WHERE userid = userid_in;
END updateExample;
您需要一个序列:
create sequence seq_user_id start with 1 increment by 1;
还有桌子上的扳机
CREATE TRIGGER user_id_trg
BEFORE insert
ON sample
FOR EACH ROW
BEGIN
SELECT seq_user_id.NEXTVAL INTO :new.user_id FROM dual;
END;
/
您需要一个序列:
create sequence seq_user_id start with 1 increment by 1;
还有桌子上的扳机
CREATE TRIGGER user_id_trg
BEFORE insert
ON sample
FOR EACH ROW
BEGIN
SELECT seq_user_id.NEXTVAL INTO :new.user_id FROM dual;
END;
/
严格地说,如果在INSERT语句中指定seq_user_id.NEXTVAL,例如在给定的示例中插入示例user_id、name、age值seq_user_id.NEXTVAL、name_in、age_in,则不需要触发器。在INSERT语句中指定序列而不是依赖触发器可能有性能优势,但使用INSERT INTO…SELECT可能比使用INSERT INTO…值更重要。严格来说,如果在INSERT语句中指定seq_user_id.NEXTVAL,则不需要触发器,例如,在给定的示例中,在示例user_id、name、age值seq_user_id.NEXTVAL、name_in、age_in中插入。在INSERT语句中指定序列而不是依赖触发器可能有性能优势,但是INSERT INTO…SELECT可能比INSERT INTO…值更重要。