问题是这样的
小弟写的程序因为数据量不大用的是sqlite数据库,
现行要向表中插入数据,表结构如下,
表一
name   no1   no2
xx     1      6
xx     7      10
xx     11     20
yy     1      6
表二
id    name1      xx
2      yy小弟现在冥想的第一个问题是,向表一插入数据的时候,怎么分别保证表一内,xx,yy分组下,no1,no2,不重复录入
也就是说
以当前表一的状态
如果insert yy  7   10 的话就ok
如果insert xx  7   10 的话就表示重复
第二个问题是
同样以当前表一的状态
如果insert xx  8  9 的话也不行,因为  xx  7  10 已经包含了8 9 望各位高手指点一二,不胜感谢

解决方案 »

  1.   

    由于是单机数据库,所以可以把逻辑放在程序里面处理呀。
    插入XX值的时候,首首先对表字段做select count(*) from 表一 where no1>=:no1 and no2<=:no2 and name=:xxyy
    :no1,:no2为要新写入的值  :xxyy为要入的类型。
    如果返回值小于零即写入,如果大于零则放弃。
      

  2.   

    sql.text:=' select code,count(code)rcount from Table group by code;
    rcount:=Table.fieldbyname('rcount').asinteger;
    if rcount>1 then
    begin
    showmessage('暑假重复:'+floattostr(recode));
    end;
      

  3.   

    Create Unique Index IX_Table1 On Table1 (No1,No2)
      

  4.   

    先谢过大家啦
    好像是我没把问题说清楚吧,大家给的方法都不行耶
    我在把问题描述的清晰一点,大家帮我在看看,怎么弄好,首先,表一有上个字段,分别是‘Name’‘no1’‘no2’,表示1~6号xx产品,每个产品的编号是唯一的
    表一 name     no1    no2 
    xx        1      6 
    xx        7      10 
    xx        11     20 
    yy        1      6 
    表二 ,两个字段‘ID’‘Name’
    ID    Name 
    1      xx 
    2      yy 
    第一个问题是,向‘表一’插入数据的时候,怎么分别保证‘表一’内,xx,yy分组下,no1,no2,不重复录入
     
    以当前‘表一’的状态insert into (Name,no1,no2)values('xx',7,10)的时候就不能插入但是insert into (Name,no1,no2)values('yy',7,10)则可以第二个问题是插入的记录时 no1,no2,不能被已有的no1,no2。所包括同样以‘表一’当前状态insert into (Name,no1,no2)values('xx',8,9)也不能插入,因为,已有的这条记录‘xx’,7,10,记录已经包括了8,9问题就是这样,多谢了
      

  5.   

    insert into (Name,no1,no2)values('xx',8,11)
    (部分重叠)行不行呢?