你需要创建一个SEQUENCE:
CREATE SEQUENCE your_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
Run Code Online (Sandbox Code Playgroud)
然后,你使用:
INSERT INTO your_table
(pk_column, ...)
SELECT 'A' || your_seq.NEXTVAL ...
Run Code Online (Sandbox Code Playgroud)
如果您希望该字母数字值也增加,请创建另一个序列并使用CHR功能:
SELECT CHR(alpha_seq.NEXTVAL) || your_seq.NEXTVAL ...
Run Code Online (Sandbox Code Playgroud)
但我的建议是将此列作为代理键,并使用实际主键列的序列值:
INSERT INTO your_table
(pk_column, surrogate_key, ...)
SELECT your_seq.NEXTVAL,
'A' || your_seq.NEXTVAL ...
Run Code Online (Sandbox Code Playgroud)
...因为VARCHAR2将占用更多的字节NUMBER.它在JOINing表时会有所不同,并允许灵活地更改代理键而不影响参照完整性(IE:B1,B2,B3 ......).
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |