这应该由你应用中的事物来保证数据的一致性,数据库本身的约束,很难做到这一点

解决方案 »

  1.   

    业务逻辑应该由你的应用来保证
      

  2.   

    创建触发器吧,用触发器可以实现你要求的功能。
      

  3.   

    事务处理可以保证一致性,例如(delphi)可以在前端控制:
    with ADOConnection1 do
    begin
      BeginTrans;
      try
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('insert into aaa values(:az,:bz)');
      ADOQuery1.Parameters.ParamByName('az').Value:='aa';
      ADOQuery1.Parameters.ParamByName('bz').Value:='bb';
      ADOQuery1.ExecSQL;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('insert into aaa values(:az,:bz)');
      ADOQuery1.Parameters.ParamByName('az').Value:='aa';
      ADOQuery1.Parameters.ParamByName('bz').Value:='bb';
      ADOQuery1.ExecSQL;
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('insert into aaa values(:az,:bz)');
      ADOQuery1.Parameters.ParamByName('az').Value:='aa';
      ADOQuery1.Parameters.ParamByName('bz').Value:='bb';
      ADOQuery1.ExecSQL;
          //application.MessageBox('已插入数据','提示信息',32);
      except
      RollbackTrans;
      end;
    end;