我是Oracle的初学者,现在知道,对于一个表,要想像SQL SERVER 那样有一个自动标识列的话,是要新建一个序列的但现在如果一个项目里有多个表,每个表都需要一个自动标识列的话,,如果这些表共用一个序列的话,估计肯定是不行了,现在想请教下,像我说的这种情况,是要为每一个表都建一个序列么?还是有其他什么办法?
强调一点在数据库设计中 所有的表的主键都是从1开始的 而且递增值也是1 好 现在开始给你分解 A表:id列(主键) 其它列先不考虑 B表:id列(主键)开始的业务 现在对A表插入一条数据 insert into A valuse(1); 1通过序列得到 这时业务上也要求对B表插入 insert into b select max(id) from a;--也是1
如果B表与A表有关联 insert B表是使用A的主键(序列生成的)就可以了
没有关系的,oracle的序列值范围很大的。比如一个模块有一张主表吧,那么这个模块的所有表就用这一个序列来解决。你设计中有多少个模块,就可以相应建立多少个序列!
没有关系的,oracle的序列值范围很大的。比如一个模块有一张主表吧,那么这个模块的所有表就用这一个序列来解决。你设计中有多少个模块,就可以相应建立多少个序列!
你没明白我的意思
是这样的 insert into B(id) select max(id) from A;
这种情况 要保证在业务上 A与B是一对一的
好 现在开始给你分解
A表:id列(主键) 其它列先不考虑
B表:id列(主键)开始的业务 现在对A表插入一条数据
insert into A valuse(1); 1通过序列得到
这时业务上也要求对B表插入
insert into b select max(id) from a;--也是1
max(id)你要看明白 就明白了
可以参考我的BLOG:http://blog.csdn.net/java3344520/archive/2009/11/30/4907591.aspx