十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
oracle中没有自动增长,只有序列号
创新互联是少有的成都网站制作、成都网站设计、营销型企业网站、微信小程序、手机APP,开发、制作、设计、卖友情链接、推广优化一站式服务网络公司,于2013年开始,坚持透明化,价格低,无套路经营理念。让网页惊喜每一位访客多年来深受用户好评
添加一条记录和sqlserver一样
语法:insert into table(列,列,列) values(value,value,value);
如果有个自动增长列
可以用这种方法,首先创建一个序列号SEQ_Test
然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);
oracle的自增需要依靠序列和触发器共同实现
比如
先创建一个表
create table test(id int primary key,
name varchar2(10));
创建一个序列
create sequence test_seq
increment by 1
start with 1
minvalue 1
maxvalue 9999999999999
nocache
order;
触发器实现
create or replace trigger test_trigger
before insert on testfor each row
begin
select test_seq.Nextval into:new.id from dual;
end;
然后你试试吧
insert into test (name) values ('张三');
应该只有触发器的办法:
比如表名:tab,主键为:id
1. 增加一个序列号: create sequence seq_tab
2. 增加一个触发器,如果是insert,则取序列号值,赋予主键列
CREATE OR REPLACE TRIGGER TRI_tab
BEFORE INSERT ON tab FOR EACH ROW
DECLARE
-- LOCAL VARIABLES HERE
BEGIN
IF :NEW.id IS NULL THEN
SELECT SEQ_tab.NEXTVAL INTO :NEW.id FROM DUAL;
END IF;
END TRI_tab;