我想知道Oracle表(或列)如何知道哪个序列被使用或应用于该特定表(或列)。Oracle表如何知道它与哪个序列关联?
2
A
回答
5
据我所知,序列不是系统地与Oracle中的一个特定表关联。根据the documentation:
没有序列,序列值只能以编程方式产生。通过选择最近生成的值并将其递增,可以获得新的主键值。此方法在事务期间需要锁定,并导致多个用户等待主键的下一个值;这个等待被称为系列化。如果开发人员在应用程序中有这样的结构,那么您应该鼓励开发人员将他们替换为序列的访问。序列消除了序列化并提高了应用程序的并发性。
因此,应用程序的开发人员需要将每个序列与它们所用的表相关联。通常这是通过使用名称来完成的,该名称以某种方式指出了它的用途。因此,填充emp
表主键的顺序可能被称为emp_sequence
。
2
Oracle 12c可以创建一个带有身份子句的列。
create table MY_TABLE(
ID number generated always as identity
)
/
这会创建一个与该列关联的序列。您可以查询视图ALL_TAB_IDENTITY_COLS找出序列的系统生成的名称:
select owner, sequence_name
from ALL_TAB_IDENTITY_COLS
where owner='MY_SCHEMA'
and table_name='MY_TABLE'
and column_name='MY_COLUMN'
/
相关问题
- 1. 如何知道哪个视图与哪个控制器关联?
- 2. 如何知道我与Firebase关联了哪个数据库?
- 3. 如何知道哪些模块与ActiveRecord :: Base关联?
- 4. 如何关联JTextArea和Object?如何知道哪个对象属于哪个jtextArea?
- 5. 复选框如何知道它与textview的关联
- 6. 使用Process PerformanceCounters我如何知道实例与哪个进程关联?
- 7. 如何知道哪个分区列是
- 8. 如何知道任何文件/程序与Java的哪个默认程序相关联?
- 9. npm列表如何知道哪些是直接依赖关系?
- 10. Pubnub列表devicetoken与频道关联?
- 11. 应用程序如何知道从哪个页面访问它?
- 12. 如何知道哪个图像与drupal中的哪个内容项目相关
- 13. QToolBar如何知道它在哪里?
- 14. 如何正确关联一个id生成器序列与表
- 15. 如何知道自定义列表中单击哪个按钮
- 16. 如何知道哪个列表项被点击?
- 17. 如何知道在JAVA中选择了哪个列表
- 18. 如何知道现有表格中创建了哪个列?
- 19. 哪个Oracle表使用序列?
- 20. 如何知道序列的下一个值而不增加它?
- 21. 如何知道为联合设置了哪个变量值?
- 22. 如何让程序知道它在哪里?
- 23. 如果我知道一个类,我怎么知道它来自哪个jar?
- 24. Mysql加入 - 如何知道从哪个表检索哪一行...?
- 25. 如何搜索列表框而不知道它拥有哪种对象?
- 26. C商店如何知道它属于哪个C? DICOM
- 27. shell如何知道它在哪个目录?
- 28. MySQL触发器:如何知道哪个脚本调用它?
- 29. 如何知道它是哪个版本的ASP.net?
- 30. WordPress分类 - 它如何知道哪个object_id?
此前12C,序列不相关联的表,因此该表不知道用哪个序列。 12c引入了在标识列和默认约束中使用序列的选项。这些信息应该在数据字典中提供。 –
@ShannonSeverance:我对甲骨文相当陌生。发生有一个如何工作的链接? –
@JonEricson https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#CJAECCFH – mathguy