跪求数据库表id增量详细设计方法

楼主
我是社区第57位番薯,欢迎点我头像关注我哦~
跪求数据库表id增量详细设计方法

昨天我在测试服务器,做了个id增量,结果挂了,请高手指点迷津。



1、数据库表Test

create table Test
(
T_Id       char(5)
T_Name  varchar2(8)
)

2、求牛人帮忙看下,怎么建立T_Id增量,增量为1

分享扩散:

来自 2#
发表于 2012-2-7 10:15:07
本帖最后由 花生 于 2012-2-7 10:15 编辑

id自增要有你建的table(表),squences(序列)以及triggers(触发器)完成,你要知道那个怎么写呢?我用的是oracle的,sql基本一样
板凳
发表于 2012-2-7 10:07:41
不懂,帮顶…………
地板
发表于 2012-2-7 10:11:19
什么数据库
5楼
发表于 2012-2-7 10:17:36
squences代码:
  1. create sequence ZX_CKCK
  2. minvalue 1
  3. maxvalue 9999999999999999999999999999
  4. start with 201
  5. increment by 1
  6. cache 20;
复制代码
6楼
发表于 2012-2-7 10:19:14
本帖最后由 花生 于 2012-2-7 10:20 编辑

triggers代码:
  1. create or replace trigger zhaoxin_ckck
  2.   before insert on tablename  for each row
  3. declare
  4.   -- local variables here
  5. begin
  6.   select zx_ckck.nextval into :new.fid from dual;
  7. end zhaoxin_ckck;tiggers代码:
复制代码
7楼
发表于 2012-2-7 10:21:19
oracle才要增量啊。其他哪里需要学习啊
8楼
发表于 2012-2-7 10:32:03
其实所有数据库都是可以增量的,即table(表),squences(序列)以及triggers(触发器)完成,只是sqlserver里面直接有个选项标识一下就可以了
9楼
发表于 2012-2-7 10:33:09
唯一不同的是sql server中的标识增量的东东不能复位而已其他的没什么区别了!
10楼
发表于 2012-2-7 13:32:35
你什么数据库呀,oracle用序列就行,sql的有字段类型
11楼
发表于 2012-2-7 14:45:53
lz解决没有?借地继续提问题:  在lz解决了数据库表格自增一以后,我想在fr里按照id顺序排列,也就相当于按照每一行数据的增加顺序排列。现在我想让第i行和第k行顺序互换,即让第i行的id变为k,且第k行的id变为i,在填报格式下应该怎么处理呢?
我的想法是用按钮--事件触发--点击时运行javascript--得到第i和k行的id,互换--提交写入数据库
但目前有好几个地方不会。第一是怎么得到i和k的id,鼠标焦点不可能同时在两行上啊;第二是虽然可以在数据库里实现id自加1,但是填报报表里我也希望使用“添加记录”功能,若添加的这行记录跟另一行记录互换id,就会出现id为空的情况,不知道怎么处理好
12楼
发表于 2012-2-7 15:09:56
本帖最后由 maxmaxmax 于 2012-2-7 15:14 编辑

4、5、6楼说得很明白了,先写一个squences,如5楼,然后对你的表格test写一个triggers,如6楼,就行了,以后每增加一行就会自动填入id。把6楼trigger里的tablename改成你的test,语句里的:new.fid改成你的字段名:new.T_Id
squences的意思是定义一个变量ZX_CKCK让它每次增加1,初始值1,最大值9999999999999999999999999999(start with 201什么意思不知道,不过没关系)
triggers的意思是对你的表格写trigger,每增加一行数据前就会执行一次trigger,trigger的事件是把ZX_CKCK的值赋给新增加行的字段T_Id
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

11回帖数 1关注人数 5036浏览人数
最后回复于:2012-2-8 13:25

返回顶部 返回列表