Oracle系列—【在sql语句中新增非自增的ID时,如何生成ID?】


1.今天同事遇到一个问题,Oracle数据库,用insert…select从老表中往新表中新增数据时,新表的ID不是自增的,需要在sql语句中生成一个NUMBER(20,0)的ID.

insert into table1 (RULE_ID,RULE_CODE,RULE_NAME ) SELECT t2.RULE_ID t2.RULE_CODE,t2.RULE_NAME from table2 t2

2.因为table2表中的RULE_ID为字符串,而table1中的RULE_ID为NUMBER(20,0),字符串转换不成数字,所以需要重新生成ID

insert into table1 (RULE_ID,RULE_CODE,RULE_NAME ) SELECT lpad(rownum,20,0)  t2.RULE_CODE,t2.RULE_NAME from table2 t2

3.扩展

lpad(rownum,20,0)这个函数会生成数字;

‘ID’||lpad(rownum,20,0)前面加个’ID’可以生成字符串’ID0001’。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/267155.html

(0)
上一篇 2022年6月14日
下一篇 2022年6月14日

相关推荐

发表回复

登录后才能评论