oracle序列已经创建了。 现在我要插入的时候id为自动增长 ,insert的时候插入怎么写?
答案:4 悬赏:40 手机版
解决时间 2021-11-28 00:13
- 提问者网友:你挡着我发光了
- 2021-11-27 01:39
oracle序列已经创建了。 现在我要插入的时候id为自动增长 ,insert的时候插入怎么写?
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-11-27 02:10
序列是结合触发器使用的
CREATE OR REPLACe TRIGGER TBLPOWERFACTORVALUELIMIT_TRIG
BEFORE INSERT ON TBLPOWERFACTORVALUELIMIT
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
SELECT TBLPOWERFACTORVALUELIMIT_SEQ.NEXTVAL INTO :NEW.LIMITID FROM DUAL;
END;
CREATE OR REPLACe TRIGGER TBLPOWERFACTORVALUELIMIT_TRIG
BEFORE INSERT ON TBLPOWERFACTORVALUELIMIT
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
SELECT TBLPOWERFACTORVALUELIMIT_SEQ.NEXTVAL INTO :NEW.LIMITID FROM DUAL;
END;
全部回答
- 1楼网友:舍身薄凉客
- 2021-11-27 04:45
贴错误消息啊
- 2楼网友:底特律间谍
- 2021-11-27 03:34
insert into 表 values(id.nextval) //不是id.nexvalues,ok?还有 lz最好提问时贴错误,或你的代码,这个sql语句只要正确不可能不行 只可能lz写错了,果断要求贴代码和贴图追问
错误消息
调用代码:
begin
SP_T_mac_Info('123','321','1','0',sysdate,'N','demo',sysdate,SEQ_list.Nextval,'a');
END;
- 3楼网友:归鹤鸣
- 2021-11-27 02:58
SQL> CREATE SEQUENCE test_sequence2
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环
Sequence created.
SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAr(10),
4 PRIMARY KEY (id)
5 );
Table created.
SQL> CREATE OR REPLACe TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2.nextval INTO :new.id FROM dual;
6 END;
7 /
Trigger created.
SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');
1 row created.
SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');
1 row created.
SQL> SELECt * FROM test_create_tab2;
ID VAL
---------- --------------------
1 NO id 2 id no use追问请问可以加下您QQ吗
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环
Sequence created.
SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAr(10),
4 PRIMARY KEY (id)
5 );
Table created.
SQL> CREATE OR REPLACe TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2.nextval INTO :new.id FROM dual;
6 END;
7 /
Trigger created.
SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');
1 row created.
SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');
1 row created.
SQL> SELECt * FROM test_create_tab2;
ID VAL
---------- --------------------
1 NO id 2 id no use追问请问可以加下您QQ吗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯