• 充分利用Unique Index


    假如我们是一服装公司,在接受定单的时候,我们就要检测,一个季度是否有重复的订单,但然,在我们接受打单的时候,也要做一个检测。怎么完成这项任务呢?

     

    我想,除了我们在程序级设置检测以外,最重要的就是数据库本身了。下面我们就试着来解决这个问题:

     

    下面是我们的数据库设计,当然是简略版的:ORDERS订单表,主要有定单号,款号和季度ID。季度表里有一个主键和季度名。

    Orders

    OrderID primary key, auto increase, int 4

    Style  nvarchar 100 nullable

    SeasonID int 4 nullable

     

    Seasons

    SeasonID primary key, auto increase, int 4

    Name varchar 20

     

    文章开头已经提到了,我们的问题是如何解决防止同一季度接受同一款式订单。充分利用Unique Index我们就可以很简单的完成任务。看看下图详解:

    o_未标题-1.gif

    让表处于编辑状态,点击管理索引/键,就可以看到上画面,通过这个界面,就可以设置唯一索引来完成我们的任务。特别注意粉红区域,只有选中创建UNIQUEU)这个唯一索引才会生效。OK 我们的任务完成了!

     

    在来看看,当插入数据的时候,经常会出现的数据提示:

    insert into Orders(Style,SeasonID) values('style2',1)

    当我们的订单中已经有款式为style2季度为1的订单,再执行上述查询的时候,会出现下列错误:

    服务器: 消息 2627,级别 14,状态 2,行 1

    违反了 UNIQUE KEY 约束 'IX__Orders'。不能在对象 '_Orders' 中插入重复键。

    语句已终止。

    我想读了上面的文章,你就会明白,该怎么解决这个问题了。哈哈,自己搞定!

    好运!2006-10-30

  • 相关阅读:
    [知乎]20世纪初的军阀.
    Clover的简单使用
    影像工作站的数据库安装错误之Win7系统下pg服务无法启动
    屏蔽各大视频网站播放前15秒30秒广告
    电脑双显示器主分屏,巨鲨显示器不亮
    move 和 CopyMemory的区别
    The CompilerVersion constant identifies the internal version number of the Delphi compiler.
    Firemonkey的旁门左道[六]
    电够动力足——认识主板上的CPU供电模块
    delphi 枚举类型
  • 原文地址:https://www.cnblogs.com/lgp/p/545165.html
Copyright © 2020-2023  润新知