应该只有触发器的办法:
成都创新互联公司是一家集网站建设,黎城企业网站建设,黎城品牌网站建设,网站定制,黎城网站建设报价,网络营销,网络优化,黎城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
比如表名: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;
oracle中没有自动增长,只有序列号\x0d\x0a添加一条记录和sqlserver一样\x0d\x0a语法:insert into table(列,列,列) values(value,value,value); \x0d\x0a\x0d\x0a如果有个自动增长列\x0d\x0a可以用这种方法,首先创建一个序列号SEQ_Test\x0d\x0a然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);
oracle:
oracle没有自增长序列,因此可以用以下方法来实现
1.建立表格:
createtabletable1
(
cidnumber(8)notnull,
othersvarchar2(20)
);
2.建立从1开始的序列:
createsequenceemp_sequence
incrementby1--每次加几个
startwith1--从1开始计数
nomaxvalue--不设置最大值
nocycle--一直累加,不循环
nocache--不建缓冲区3.建立触发器:
createorreplacetriggermytgr
beforeinsertontable1foreachrow
begin
selectmytgr.nextvalinto:new.cidfromdual;
end;
mysql:
createtabletbname(a_idunsignedintprimarykeyauto_incrementnotnull,
a_titlevarchar(32),
a_contenttext);