如何在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();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值