如何在MySQL&Oracle下创建自动递增字段

本文介绍如何在MySQL和Oracle数据库中创建自动递增字段。MySQL使用auto_increment属性轻松实现,而Oracle则通过序列(sequence)或触发器(trigger)来完成。文章提供了具体的SQL语句示例。

如何在MySQL&Oracle(大型网站数据库平台)下创建自动递增字段

一、在MySQL(PHP搭配之最佳组合)下创建自动递增字段:

create table article

(

id int Primary key auto_increment,  //主键自动递增

title varchar(255)

);

 

二、Oracle是通过序列(sequence)或者触发器(trigger)可以实现。

假设关键字段为id,建一个序列,代码为:

n        Create sequence
create sequence SEQ_LEAVE_WORDS
minvalue
1
maxvalue
999999
start with
1
increment by
1
cache
20;

n        举例说明:

    //添加记录

    public void update(LeaveWordBean bean) {

       Date date = new Date();

       SimpleDateFormat formater = new SimpleDateFormat("yyyyMMdd");

       String today = formater.format(date);

       String seqName = "SEQ_LEAVE_WORDS";//序列名字

//方法一:通过seq取得主键的值

       String sql1 = "select "+seqName+".NEXTVAL id from dual";

//方法二:通过sql取得主键的值

       //String sql1 = "Select max(id) maxId from leave_words";

       String sql2 = "Insert into leave_words(id, title, content, leavedate) values(?, ?, ?, ?)";

       int maxId = 0;      

       try {

           //stmt = conn.createStatement();

           //rs = stmt.executeQuery(sql1);

           //while(rs.next()) {

              //maxId = rs.getInt(1);

           //}

           stmt = conn.createStatement();

           rs = stmt.executeQuery(sql1);

           while (rs.next()) {

              maxId = rs.getInt(1);

           }

          

           pstmt = conn.prepareStatement(sql2);

           pstmt.setInt(1, maxId);

           pstmt.setString(2, bean.getTitle());

           pstmt.setString(3, bean.getContent());

           pstmt.setString(4, today);

           pstmt.executeUpdate();

       } catch(SQLException e) {

           e.printStackTrace();

       }

    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值