`
lc90
  • 浏览: 68435 次
  • 性别: 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’);
可以看到,在未指定主键值的情况下,数据库会自动帮我们生成主键,保证了数据的唯一性。

 

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

 

分享到:
评论

相关推荐

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

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

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

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

    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.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 三维图表中...

    Excel2007图表完全剖析 6/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 三维图表中...

    level1~2题库-考试通.xlsx

    客户代表将填写必要的数据以解决问题,而机器人将在多个系统中使用该数据来完成交易。 这些是典型的应用场景,其中可以使用此类自动化解决方案来自动化高频/重复性任务: 14-调用详细的客户资料 15-获取...

    orcale常用命令

    使用INPUT命令可以在SQL缓冲区中增加一行或多行 SQL>i SQL>输入内容 e、调用外部系统编辑器 SQL>edit 文件名 可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在login.sql文件中定义如下一行 DEFINE_...

    工资透视表.zip

    - 在值区中,可以添加计算字段,比如“总薪资增长率”(当前薪资与上一年度薪资的差值除以上一年度薪资)。 - 通过透视表的子总计功能,可以比较不同部门或职级的薪资差异。 5. **数据透视表的高级功能** - 使用...

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

    这是因为AUTO_INCREMENT列会自动递增,显式填充数字会导致自动增长机制失效。 2. 变量未赋值时,数值型变量的默认值为0。 3. 域名系统中代表中国的顶级域名是.cn,而不是china。 4. SQL查询中,选择查询、联合...

    access升迁到sql

    2. 数据类型转换:Access和SQL Server支持的数据类型有所不同,迁移时需要确保所有字段的数据类型正确映射,以避免数据丢失或错误。 3. 触发器和存储过程:SQL Server支持高级数据库编程,包括触发器和存储过程。...

    CRM系统使用手册范本.doc

    CRM系统使用手册范本 1. CRM系统简介 CRM,全称Customer Relationship Management,即客户关系管理,是一种用于帮助企业...通过深入理解和熟练使用本手册中的各项功能,企业可以更有效地管理客户关系,实现持续增长。

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

    12. 自动增长属性:在MySQL或类似的数据库系统中,`AUTO_INCREMENT`会自动为新插入的记录提供唯一值,即使插入指定的ID,也会跳过。 13. Java类与对象:成员变量在对象初始化后通常是不可修改的。 14. Web服务器...

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

    27. Access 2003中,自动增长(AutoNumber)字段类型的长度由系统决定。 这些知识点反映了计算机二级考试的常见内容,包括编程语法、数据库操作、办公软件应用和计算机基础理论等。准备这样的考试需要对这些方面有...

Global site tag (gtag.js) - Google Analytics