一、mysql自动增长主键设置
1:创建表,设置表主键id自动增长,默认自动增长的起始值为1开始。
2:当表数据不为空的时候,重新去修改自动增长id开始值,mysql会主动去核对你设置的起始值是否是当前数据库已有id的最大值+1; 若是则修改成功,若不是则修改不成功 (默认还是id最大值+1)
3:要设置自动增长为1开始,需要清空表数据才行。alter table table_name AUTO_INCREMENT=1
4: 若每次直接在数据库里面插入数据,则会自动的去修改当前表的自动增长起始值(设置自动增长起始值为当前插入成功的数据的id)
二、SQL总结
1.1 update更新select结果集的数据 (update更新select容易导致锁表)
去掉重复的借据business_key
update plms_job_data set status='1' where task_id in (
select task_id from (select task_id from plms_job_data where type='repayNotice' and `status`='-1' GROUP BY business_key HAVING count(business_key)>1 )as t );
三、Oracle总结
2.1 oracle--分组后获取每组数据第一条数据
通过客户id批量查询合同编号( 按照bi.finishdate降序)
SELECT contractserialno FROM(
SELECT ROW_NUMBER()OVER(partition by bi.customerid order by bi.finishdate desc) rn , bi.contractserialno
from ph_balanceinfo bi
where bi.customerid in ('CT20141010000016')
)WHERE rn = 1;
ROW_NUMBER() OVER(partition by col1 order by col2) --表示根据col1分组,在分组内部根据col2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内是连续且唯一的)。