各位老师我有一个巨简单的问题,主键自增的问题 网上讲说用SEQ序列就行那我有一百个表,就必须得建一百个SEQ,然后再建一百个触发器将序列和表的主键字段关联上吗??这样很麻烦啊,有没有简单点的办法, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 多表可以用一个序列2 一般不用触发器来写主键,用insert values(xxx.nextval,...)来写主键 建一个序列就够了呀--创建序列create sequence seq_nameincrement by 1start with 1maxvalue 999999999nocyclecache 10新增数据insert into table_name values(seq_name.nextval,...........)建一次可以永远使用,除非你把他删除.下一次使用时他不是从1开始增加,是接着上次增加的序列开始增加 "多表可以共用一个序列,但这样会中间断值"=======================================即使每个表一个sequence,也会断号而且sequence很大程度地影响了INSERT的速度当然,在不得不用sequence的时候,sequence是最好的选择 我也一直是建一个表,就建一个SEQ 我晕,,,看来大家基本是建一个表再建一个SEQ啊,,多个表共用一个SEQ也可行,不错的方案 我的习惯是:1,能用自然主键的就用自然主键;2,一个表对应一个SEQUENCE3,插入的时候不需要触发器,可以用.nextval。不过,你如果要考虑程序的兼容性,因为其他数据库不支持这个,比如SQL Server的自增字段是隐式插入的,那就用触发器来实现。 说实在的,一般来说,一个表总是有自然主键的不知道为什么,很多做开发的都喜欢用sequence sequence或者GUID生成全球唯一主键 请教如何将CASE WHEN放入SELECT中 关于SCN的问题??? 帮忙 netca 无法运行 ora-000409?? for update 在windows xp下如何彻低卸载oracle客户端呀?oci.dll文件为何不能删除,更新呀? 驱动问题,请指教,谢! 如何用 exp imp 定时从一台机器把数据库转移到另一台机器? 关于 ORA-01013 超时的问题 请问建好的数据库安全性中,没有了dba 角色,如何生成??急,谢!!!!! 各位老师我有一个巨简单的问题,但问了30多个QQ网友都不知道,郁闷啊55555555 菜鸟问题
2 一般不用触发器来写主键,用insert values(xxx.nextval,...)来写主键
--创建序列
create sequence seq_name
increment by 1
start with 1
maxvalue 999999999
nocycle
cache 10新增数据
insert into table_name values(seq_name.nextval,...........)建一次可以永远使用,除非你把他删除.下一次使用时他不是从1开始增加,是接着上次增加的序列开始增加
=======================================
即使每个表一个sequence,也会断号
而且sequence很大程度地影响了INSERT的速度
当然,在不得不用sequence的时候,sequence是最好的选择
1,能用自然主键的就用自然主键;
2,一个表对应一个SEQUENCE
3,插入的时候不需要触发器,可以用.nextval。不过,你如果要考虑程序的兼容性,因为其他数据库不支持这个,比如SQL Server的自增字段是隐式插入的,那就用触发器来实现。
不知道为什么,很多做开发的都喜欢用sequence