1
A
回答
6
你需要创建一个序列:
CREATE SEQUENCE your_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
然后,您可以使用:
INSERT INTO your_table
(pk_column, ...)
SELECT 'A' || your_seq.NEXTVAL ...
如果你想要的字母数字值递增为好,创建另一个序列&使用CHR function :
SELECT CHR(alpha_seq.NEXTVAL) || your_seq.NEXTVAL ...
但我的建议是使此列的代理键,并使用序列值的实际主键列:
INSERT INTO your_table
(pk_column, surrogate_key, ...)
SELECT your_seq.NEXTVAL,
'A' || your_seq.NEXTVAL ...
...因为VARCHAR2
将采取更多的字节数比NUMBER
。加入表格时,它会有所作为,并允许灵活地更改代理键而不影响参照完整性(IE:B1,B2,B3 ...)。
相关问题
- 1. 数据库主键
- 2. 数据库主键
- 3. Node.js - Oracle数据库和fetchAsString格式
- 4. 日期格式在Oracle数据库
- 5. 数据库主键的数据类型
- 6. Oracle APEX - 数据建模和主键
- 7. Oracle数据库查询 - 数据格式问题
- 8. 主键+引发数据库模式导致问题的复合主键
- 9. 查看Oracle有关主键/外键约束的元数据
- 10. 数据库格式
- 11. 没有主键的数据库表
- 12. 数据库:表开头的主键列
- 13. Oracle外键或主键
- 14. 数据库oracle
- 15. 数据库Oracle
- 16. 分布式数据库主键的选择
- 17. Oracle APEX 4.2主键?
- 18. Oracle数据库:具有NULL值的索引组织表(在多列主键中)
- 19. 通过Spring MVC从Oracle数据库获取自动递增的ID(主键)
- 20. Cassandra VS Dynamo数据库主键选择
- 21. 从数据库获取主键(Python/Django)
- 22. 更新SQLite数据库主键
- 23. H2数据库主键违规
- 24. Haskell持久数据库主键
- 25. Mysql数据库 - 主键问题
- 26. VS数据库项目主键名
- 27. 数据库主键和验证
- 28. 从数据库检索主键
- 29. Linq更新数据库,主键
- 30. H2数据库主键上创建
为什么?数值PK有什么问题? – Rene 2012-03-19 08:59:03