软件开发中oracle数据库表主键自增问题
发布网友
发布时间:2022-04-07 19:03
我来回答
共4个回答
热心网友
时间:2022-04-07 20:33
恩, 如果要全自动的话, 那就只能是 200 个表 200个触发器了.
如果是 半自动的.
也就是你 INSERT INTO 语句里面, 手动指定了 VALUES ( 序列号.nextval ...
那么就可以不用那么多触发器。
这个你可以权衡一下,也就是你的表,都是哪些用户来插入数据。
或者说,有哪些 入口, 可以插入数据的。
如果 入口很单一,就一个程序,会插入那个表的,那么可以 半自动,少写个触发器。
如果 入口很多,很多程序,都要插入那个表,那么就触发器,全自动吧。
热心网友
时间:2022-04-07 21:51
错,既然oracle有了一个sequence,那么,这个id的自增是sequence自己来完成的,并不需要你去写一个触发器。
热心网友
时间:2022-04-07 23:25
可以写触发器trriger,在更新主表的主键前将从表的键值改掉再更新主表的键值。
例如:CREATE OR REPLACE TRIGGER TRG_触发器名 --创建触发器
BEFORE INSERT OR UPDATE --意思是在插入或更新操作之前
ON 主表名 --为主表创建
REFERENCING OLD AS OLDROW NEW AS NEWROW --定义数据行
FOR EACH ROW
BEGIN
IF INSERTING THEN
--向主表插入时做的操作
ELSE
--更新主表时做的操作
--Update 从表的操作写在这里就可以。
END IF;
END;
如果不是很清楚的话,你可以再上网查一下具体的触发器写法,祝你成功!sutingting03希望有所提示,有空到CSDN,IT实验室,365testing进一步交流!
热心网友
时间:2022-04-08 01:17
自增不一定要在数据库中做,可以在程序里面做的,写个通用类完成自增。触发器建多了不是好事。