`
lc90
  • 浏览: 70369 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

在填报表中如何正确使用自动增长的字段

阅读更多

在多用户并发进行填报的时候,总会遇到一个发生率很高的问题,就是主键的重复。主键重复造成的结果是前一个用户的填报内容,被另一个用户给覆盖掉了,造成了数据丢失。

 

这个问题如果由编程人员来解决,那将会是一件非常麻烦的事情。但是如果交由数据库去处理,就变得简单多了,因为不管多少个用户,对数据库来说只是一个更新数据库的命令队列,数据库本身会对主键的问题进行判断。这也就是大多数数据库提供的字段自动增长功能的原因。

 

集智数据平台的报表系统里面也支持了这种自动增长字段的方式,如下图:

 

 

由此可见,在报表端设置起来是非常简单的。

 

下面介绍一下针对三种常用的数据库,自动增长字段的设置方法:

 

1、MySQL
在建表的时候,在主键字段后面加上AUTO_INCREMENT即可,例如:
CREATE TABLE AUTO_KEY_TABLE (
ID INT PRIMARY KEY AUTO_INCREMENT,
DATA VARCHAR(255)
);

 

2、SQLServer
SQLServer相对麻烦一些,需要在企业管理器里面配置,如下图:

 


 

3、Oracle
这个是最麻烦的,因为Oracle提供的自动增长方式与前两个不同。在Oracle里面提供了序列对象,由该序列提供一个唯一值,但是我们每次插入数据的时候,需要在SQL中调用这个序列才可以。
但是Oracle也同时提供了触发器的功能,可以在插入数据前自动调用触发器,从而实现我们的目的。完整的代码如下:
– 创建演示表
CREATE TABLE AUTO_KEY_TABLE(”ID” INT PRIMARY KEY,”DATA” VARCHAR(255));
– 创建一个序列
CREATE SEQUENCE AUTO_KEY_SEQ;
– 创建触发器
CREATE TRIGGER BIFER_AUTO_KEY_TABLE
BEFORE INSERT ON AUTO_KEY_TABLE
REFERENCING
OLD AS OLD_VALUE
NEW AS NEW_VALUE
FOR EACH ROW
BEGIN
  SELECT AUTO_KEY_SEQ.NEXTVAL INTO :NEW_VALUE.ID FROM DUAL;
END;

上面的操作完成后,我们可以通过以下SQL测试一下:
INSERT INTO AUTO_KEY_TABLE(DATA) VALUES(’test’);
可以看到,在未指定主键值的情况下,数据库会自动帮我们生成主键,保证了数据的唯一性。

 

更多了解各种复杂问题的处理,可以参考:数据抽取让业务用户随时可以自己定义查询报表

 

分享到:
评论

相关推荐

    润乾报表V4.0入门教程

    - 支持自动分页功能,确保报表内容能够在多页纸上正确分布。 - 也可以手动调整分页,以满足特殊需求。 ##### 11.3 分栏 - 支持将报表内容分栏显示,使得打印出的报表更加整齐美观。 - 适用于需要在一页内展示大量...

    K3cloud5.0直接SQL报表

    为了更好地利用这两个数据库中的数据,我们需要掌握一定的SQL基础,并了解如何在K3cloud5.0中使用直接SQL报表功能来实现跨数据库查询。 #### 功能实现 ##### 数据源配置 首先,在K3cloud5.0中配置数据源是使用...

    2021-2022计算机二级等级考试试题及答案No.11649.docx

    - **解析**: 在使用自动增长字段时,可以通过指定`NULL`或不赋值的方式来触发自动增长。 - **正确答案**: `D.填充数字1`,这会导致自动增长字段不按预期增加。 #### 题目27:学生表结构 - **知识点**: 数据库表结构...

    商品缺货日报表精品模板方案.doc

    - 在现代化的业务环境中,报表通常与ERP(企业资源规划)、CRM(客户关系管理)等系统集成,实现数据自动更新和共享。 - 自动化报表生成减轻了人工工作负担,降低了错误率。 综上所述,“商品缺货日报表精品模板...

    COGNOS® 8 QUERY STUDIO 用户指南

    - **创建报表**:在门户中选择“新建”->“报表”,并选择合适的报表类型。 - **保存报表**:完成报表设计后,记得保存以保留工作成果。可以通过指定不同的名称或位置来进行保存。 - **运行报表**:保存后,可以立即...

    2023年全国计算机等级考试二级笔试超级模拟试卷.doc

    12. 数据的最小访问单位:在数据库中,字段是最小的访问单位。正确答案是 B) 字段。 13. Access 字段名不能包含的字符:"!" 是不允许的。正确答案是 A) "!" 14. 自动编号数据类型:一旦指定,会永久连接到记录。...

    2021-2022计算机二级等级考试试题及答案No.9230.docx

    12. AUTO_INCREMENT:在INSERT INTO语句中,对于AUTO_INCREMENT列,填充NULL值、不显式填充值或数字0都会使该列自动增长,但填充数字1会导致手动设定值,是错误的方式。正确答案:D。 13. 静态成员:静态成员是属于...

    MySQL在健康相关数据清理中的应用.pdf

    同时,通过增加一个自动增长的ID字段,可以轻松识别和处理重复数据,保留最早或特定条件下的唯一记录。 此外,MySQL还支持对数据进行分类统计和汇总,例如计算分病种的日接诊量。这在生成统计报表和进行后续的环境...

    2021-2022计算机二级等级考试试题及答案No.10895.docx

    MySQL数据库中的自动增长字段 **知识点说明**:在MySQL数据库中,可以通过设置字段为AUTO_INCREMENT属性来实现自动增长。在使用INSERT INTO插入记录时,如果希望AUTO_INCREMENT字段的值自动增长,可以不显式地填...

    2021-2022计算机二级等级考试试题及答案No.19890.docx

    20. 对于 `AUTO_INCREMENT` 列,插入记录时填充 `NULL` 或不显式填充值会使该列自动增长,但填充数字0或1会导致指定的值被写入。 21. 在Word2003中,打开其他工具栏需通过【视图】菜单下的【工具栏】选项。 22. ...

    Excel2007图表完全剖析 2/8

    1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中...

    Excel2007图表完全剖析 3/8

    1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中...

    2021-2022计算机二级等级考试试题及答案No.3849.docx

    - 题目的正确答案为错误,即在资源管理器窗口中使用鼠标选择不连续的多个文件应该先按住Ctrl键而不是Shift键。 ### 15. 实体之间的关系 **知识点概述:** 数据库中实体之间的关系类型。 **详细解释:** - 实体间...

    2021-2022计算机二级等级考试试题及答案No.4276.docx

    对于带有AUTO_INCREMENT属性的列,如果希望值自动增长,填充NULL值、不显式填充值或填充0都是正确的,但填充数字1会覆盖自动增长机制,因此是错误的。 3. 投影运算在关系数据库中指的是从关系中选取特定的列,生成...

    Excel2007图表完全剖析 8/8

    1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中...

    Excel2007图表完全剖析 1/8

    1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中...

    Excel2007图表完全剖析 4/8

    1.6.8 在新文档中使用自定义的主题 23 1.6.9 与他人共享主题 23 1.7 下一步 24 第2章 定制图表 25 2.1 使用设置元素格式的工具 25 2.2 识别图表元素 26 2.2.1 图表标签与坐标轴 26 2.2.2 三维图表中...

Global site tag (gtag.js) - Google Analytics