insert into T_PROMOTION_ACTIVITY (ID,ACTIVITY_NAME,START_DATE,END_DATE,STATUS,DISCOUNT_RATE) values (3,'测试2',to_date('2009-09-01','yyyy-mm-dd'),to_date('2009-09-08','yyyy-mm-dd'),'1','0.8')突然发现 ID 不会 自增 所以我想ID的字段 每次 选择 数据库里MAX的ID号 加 1 然后在插入 请大哥们 帮我 写下整条的语句 小弟菜鸟!!!!!!!!
create sequence sequencename
insert into .. values (seqname.nextval,....)
create sequence seq_id;
insert into T_PROMOTION_ACTIVITY (ID,ACTIVITY_NAME,START_DATE,END_DATE,STATUS,DISCOUNT_RATE) values (
seq_id.nextval,'测试2',to_date('2009-09-01','yyyy-mm-dd'),to_date('2009-09-08','yyyy-mm-dd'),'1','0.8') ;
(select (max(id) over(order by id))+1,'测试2',to_date('2009-09-01','yyyy-mm-dd'),to_date('2009-09-08','yyyy-mm-dd'),'1','0.8' from T_PROMOTION_ACTIVITY);没测试不知是否可以
建序列
create sequence seq_t
start with 56;
insert into T_PROMOTION_ACTIVITY (ID,ACTIVITY_NAME,START_DATE,END_DATE,STATUS,DISCOUNT_RATE) values (seq_t.nextval,'测试2',to_date('2009-09-01','yyyy-mm-dd'),to_date('2009-09-08','yyyy-mm-dd'),'1','0.8')
你想获得最大id再加1,可是又不让写在sql里
这可能吗?
--测试数据
create table temp as
(
select 1 id, 0 parentid from dual
union
select 2 id, 1 parentid from dual
union
select 3 id, 1 parentid from dual
union
select 4 id, 1 parentid from dual
union
select 5 id, 0 parentid from dual
union
select 6 id, 5 parentid from dual
union
select 7 id, 6 parentid from dual
union
select 8 id, 7 parentid from dual
union
select 9 id, 2 parentid from dual
union
select 10 id, 3 parentid from dual
union
select 11 id, 9 parentid from dual
union
select 12 id, 11 parentid from dual
)
--创建函数,返回最大ID+1
create or replace function Get_MAXId
return int
as
rv int;
begin
select max(id)+1 into rv from temp;
return rv;
end Get_MAXId;
--调用函数,插入数据
insert into temp values(get_maxid,10 );
--提交
commit;
--查询
select * from temp
这个parentid算什么 和id还有那些数字有什么关系呢
初学ORACLE 还没看过到这种结构的SQL