永发信息网

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;
全部回答
  • 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吗
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯