搜索

pdf文档 firebird generatoren ratgeber

183.60 KB 22 页 0 下载 91 浏览 0 评论 0 收藏
所属分类: 数据库 / Firebird
语言 格式 评分
德语
.pdf
3
摘要
Das Dokument erläutert die Konzeption und Verwendung von Generatoren in Firebird, die als Thread-sichere Integer-Zähler fungieren. Es wird zwischen Generatoren und Sequenzen (offizieller SQL-Begriff) differenziert, wobei diese Begriffe in Firebird synonym sind. Die Generatoren werden in der Systemtabelle RDB$GENERATORS gespeichert, und ihre aktuellen Werte befinden sich in reservierten Datenbankseiten. Die maximale Anzahl an Generatoren ist in Firebird 1.0 und höher auf 32767 begrenzt. Die Dokumentation gibt Hinweise auf die Verwendung der Befehle CREATE, SET, und DROP für Generatoren, sowie die bevorzugte SEQUENCE-Syntax in neueren Versionen. Es wird auch auf die Behandlung von Generator-IDs und die Unterschiede zwischen verschiedenen Firebird-Versionen hingewiesen.
AI总结
### 文档总结:《Firebird Generatoren Ratgeber》 #### 1. 文章概述 本文主要介绍Firebird数据库中的**生成器(Generators)**,并解释其用途、使用方法及相关注意事项。文章旨在帮助读者理解生成器的概念,并提供实用的使用建议。 --- #### 2. 核心概念 - **生成器(Generators)**: 生成器类似于一个“线程安全”的整数计数器,存储在Firebird数据库中。 - 可以通过`CREATE GENERATOR`或`CREATE SEQUENCE`(Firebird 2及以上推荐)创建。 - 生成器的值可以通过`GEN_ID`函数(Client SQL)或`NEXT VALUE FOR`(PSQL)获取。 - 生成器用于生成序列值,类似于其他数据库的`AutoInc`字段。 - **序列(Sequence)**: “Sequence”是SQL标准中的术语,Firebird中将其与“Generator”视为同一概念。 - 建议在新代码中使用`CREATE SEQUENCE`语法。 - 生成器和序列的行为完全相同,只是名称不同。 --- #### 3. 生成器的基本特性 - **存储位置**: 生成器的定义存储在系统表`RDB$GENERATORS`中,而当前值存储在数据库的专用页面中。 - **最大值限制**: - 生成器支持64位整数,范围为`-2^63`到`2^63-1`。 - 在Firebird 1.0及更高版本中,生成器的数量理论上最多为32767(受`RDB$GENERATORS`表中`SMALLINT`字段限制)。 - 早期版本(如InterBase)的生成器数量受页面大小限制,但Firebird 2及以上版本已无此限制。 --- #### 4. 生成器的使用 - **创建生成器**: - Client SQL:`CREATE GENERATOR GeneratorName;` - Firebird 2及以上推荐:`CREATE SEQUENCE SequenceName;` - PSQL中无法直接创建生成器,但可通过`EXECUTE STATEMENT`实现。 - **获取当前值**: - Client SQL:`SELECT GEN_ID(GeneratorName, 0) FROM RDB$DATABASE;` - PSQL:`intvar = GEN_ID(GeneratorName, increment);` - Firebird 2及以上推荐:`SELECT NEXT VALUE FOR SequenceName FROM RDB$DATABASE;` - **设置值**: - Client SQL:`SET GENERATOR GeneratorName TO value;` - Firebird 2及以上推荐:`ALTER SEQUENCE SequenceName RESTART WITH value;` - **删除生成器**: - `DROP GENERATOR GeneratorName;` - Firebird 2及以上推荐:`DROP SEQUENCE SequenceName;` --- #### 5. 其他注意事项 - **性能**:生成器的数量对数据库性能无影响,可自由使用。 - **早期版本差异**: - InterBase 6及更早版本对生成器的处理存在限制,可能导致数据损坏或错误。 - Firebird 2及以上版本已解决这些问题,支持更大的生成器范围。 - **系统生成器**:Firebird默认包含8-9个系统生成器,用户生成器数量最多为32767减去系统生成器数量。 --- #### 6. 附录 - **许可信息**:本文档基于“Public Documentation License Version 1.0”,允许在遵守许可的前提下使用和分发。 - **作者信息**:Frank Ingermann为原始作者,Paul Vinkenoog为贡献者。 --- ### 总结 本文全面介绍了Firebird生成器的功能、使用方法及注意事项,特别强调了生成器与序列的关系、语法差异及性能优化建议。对于需要在Firebird中使用序列或自增字段的开发者,本文提供了实用的指导。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 15 页请下载阅读 -
文档评分
请文明评论,理性发言.