有哪位大侠可以给个例子吗?
我想实现新闻表中插入新纪录时标识唯一的字段ID可以自动插入,所以要先取得表中ID的最大值,然后加1
sql="select * from dyxx order by ID DESC"
数据库连接程序得到数据集以后,可以使用rs.next();方法,然后使用int ID=rs.getInt("ID")+1;得到新插入的记录的ID吗?
或者大家有什么好的方法,能给个例子吗?
源程序没带回来,就是上面的意思,不知道我说清楚没有,初学,希望大家帮忙!
sql= select max(ID) from dyxx;
rs = stmt.executeQuery(sql);
while(rs.next&&rs.getString(1))
{
String newId= rs.getString(1)+1;
}
用序列和触发器:
CREATE SEQUENCE "表空间名"."序列名" INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER
CREATE TRIGGER "表空间名"."triger名" BEFORE INSERT ON "你的表名" FOR EACH ROW DECLARE
next_s_m_id NUMBER;
BEGIN
SELECT 序列名.NEXTVAL
INTO next_s_m_id
FROM DUAL;
:new.你的表的ID字段名:=next_s_m_id;
END;
这样每次插入时就会自动计算出ID字段的值了。
select max(ID) from ....
或用 SELECT 序列名.NEXTVAL 都可以啊
INSERT INTO r_student (id,name,age,tid,remark)
SELECT (select max(ID) from r_student)+ rownum, d.name, d.age, d.tid,d.remark
FROM r_student d