`
豌豆苗
  • 浏览: 5492 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

会议室预定系统数据插入

阅读更多
会议室预定系统,在插入预定数据的同时,需要查询新插入的预定数据与已存在的预定数据是否有冲突,如果有冲突,则不应该插入。如果把查询与插入分成两步来做,则即使在查询的时候发现没有冲突,等到插入的时候也有可能会产生冲突,这就是幻读。要完全避免幻读,就要在查询的时候锁表,插入完毕后释放锁,这样对数据库性能影响很大。
轻量级的解决方案是,把查询和插入并作一步进行,下面是建表sql,尽量简化。
create table room(id number(30));
create table book(roomid number(30),user varchar2(60),startTime date,endTime date);
插入初始数据:
insert into room (id) values (1);
插入预定数据的时候,可以把insert,select,not exists等关键字结合起来使用。
declare
  time1 date;
  time2 date;
begin
  time1:=to_date('2012-6-15 11:30:00', 'yyyy-mm-dd hh24:mi:ss');
  time2:=to_date('2012-6-15 13:30:00', 'yyyy-mm-dd hh24:mi:ss');
  insert into book (roomid, username, startTime, endTime)
  select 1, 'sunwen', time1, time2 from dual
  where not exists
    (
    select 1 from book b
    where (b.starttime<=time1 and b.endtime>=time1 and b.roomid=1)
    or (b.starttime>=time1 and b.starttime<=time2 and b.roomid=1)
    );
  commit;
end;
这样就可以避免预定同一件会议室在时间上与别人有冲突,当有冲突的时候,插入0条记录,根据返回值就可以判断插入是否成功。
分享到:
评论

相关推荐

    艾瑞思视频会议系统V6.0版

    ② 、通过完美的高清会议室布局,呈现细腻清晰的图像,流畅逼真的画面,极致震撼 的音效,营造前所未有的跨空间会议效果,使与会者“面对面”地沟通和互动。 2、多样式视频显示及轮巡 系统依照主持人预设的循环切换...

    办公室日常信息管理系统课程设计数据库实现.doc

    41 6.4 会议记录表的数据操作 42 6.4.1 会议记录表的插入操作 42 6.4.2会议记录表的修改操作 43 6.4.3会议记录表的删除操作 43 6.4.4会议记录表的查询操作 44 6.5 文件表的数据操作 44 6.5.1文件表的插入操作 44 ...

    DICOM国际会议暨研讨会:实施心脏病学DICOM统一代理程序–经验总结

    • 与多种不同系统的连接性,即DICOM模态、外部HIS/CIS系统、心脏病学信息系统/PACS(代理程序所服务的系统一般为非标准格式)、血液动力系统(多数为多模态cath实验室中的非DICOM模态)和管理站(负责接收表单/库存...

    javalruleetcode-gotta_pay_the_bill:这个repo是我对算法、谜题、数据结构和编码练习的实现,希望能帮助我保持

    java lru leetcode 这个 repo 是我对算法、谜题、数据结构和编码练习的实现,希望能帮助我保持敏锐的知识并为 CS ...会议室 2 堆 删除相邻的重复项 排序算法 比较分类: 快速排序 归并排序 插入排序

    macOS Server 5.9 App Store 原版下载压宿

    • 分享日历、安排会议和活动以及预订会议室 • 基于标准的 CalDAV 服务器,可从 Mac、iPad、iPhone 和 PC 进行访问 • 使用 "空闲/忙碌" 查找功能来查看是否有空 • 电子邮件邀请和推送通知 通讯录服务器 •...

    智能门锁功能及技术参数.doc

    2.5通道卡:用于设置门锁的通道功能,一般用于会议室或部分公共区域。 2.6客人卡:可以开启指定房间的门锁,当门锁反锁时不能开锁,客人卡一般由住店 客人或其他相应人员使用。 说明:根据需要,对总控卡、楼栋卡、...

    PHP程序开发范例宝典III

    6.2 数据插入 218 实例145 单条数据录入 218 实例146 批量数据录入 220 实例147 插入系统日志信息 222 6.3 数据更新 224 实例148 单条数据更新 224 实例149 批量数据更新 226 6.4 数据查询 227 实例...

    gasstationleetcode-leetcode:https://leetcode-cn.com

    【252间会议室】 【253会议室二】 [352 作为不相交区间的数据流] TreeMap 柜台 【最大239滑动窗口】 [295 从数据流中查找中值] 【53最大子阵】 [325 最大大小子阵列总和等于 k] [209 最小尺寸子阵列总和] 【238阵除...

    vc++ 应用源码包_1

    VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 vc-ftp 多线程操作多文件传输的操作。 VC版下载者 源码 非常简单的一个实例,使用了URLDownloadToFile下载文件...

    vc++ 应用源码包_2

    VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 vc-ftp 多线程操作多文件传输的操作。 VC版下载者 源码 非常简单的一个实例,使用了URLDownloadToFile下载文件...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_3

    VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 vc-ftp 多线程操作多文件传输的操作。 VC版下载者 源码 非常简单的一个实例,使用了URLDownloadToFile下载文件...

    vc++ 应用源码包_6

    VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 vc-ftp 多线程操作多文件传输的操作。 VC版下载者 源码 非常简单的一个实例,使用了URLDownloadToFile下载文件...

    vc++ 应用源码包_5

    VC++视频会议系统(完整)有开发文档。使用了系统自带的视频。 Windows核心编程(第五版)随书源代码 vc-ftp 多线程操作多文件传输的操作。 VC版下载者 源码 非常简单的一个实例,使用了URLDownloadToFile下载文件...

    matlab最临近插值法代码-Air_pollution_forecasting_with_Numerical_modeling_and_ML

    学术会议的科学计算实验室项目 此仓库由maintained维护, 自然科学学术会议银奖 | 过程 1 。 完善位置(纬度/经度),风(方向/速度)和空气污染数据集| 2 。 使用MATLAB进行可视化,使用精炼的数据集轻松实现数值...

    php OA 源码 办公自动化源码

    会议管理:包括会议申请、会议自动通知、会议室申请、会议查询、会议管理(会议审批、会议总结、会议纪要、纪要归档、会议维护、会议室设置)等。建立现代化的会议制度,确保会议的必要性和功效性。 车辆管理:包括...

    酒店网络设计方案.doc

    在第五层 有客房,会议室和办公区共计67个。所有的客房的信息点都进到酒店二层楼管理间,进 行集中管理。 酒店各层信息点列表: "配线间 "楼层 "网络信息点 " "FD "一层 "7 " "BD/FD "二层 "41 " "FD "三层 "85 " ...

    多音轨音效混合器软件 Acoustica Mixcraft Pro 9.0 Build 436 中文多语免费版.zip

    随着WaveRT独占模式,Mixcraft可以与音频硬件直接连接,绕过操作系统的低延迟的音频性能,无需任何特殊的驱动程序。 MIDI输入和输出的支持。将与任何USB MIDI键盘或连接到MIDI接口的任何文书工作。 交通控制,效果...

    NEC Aspila EX集团电话说明

    数据通信(Data Communication) 7 11 16 18 19 23 24 30 33 34 35 37 38 40 42 45 48 50 51 53 54 56 58 63 64 65 68 79 82 83 84 85 Aspila EX 用户手册 - ii - 部门组呼叫(Department Calling)……………………...

Global site tag (gtag.js) - Google Analytics