请问如何避免同一数据库中相同纪录的产生

foxzz 2002-03-15 02:37:44
当我对数据库a进行操作时,对a进行数据添加时,往往由于使用者的疏忽将相同的纪录添加到同一个数据库中去了,由于a中不能确定有哪些字段是一定不会重复的,也就是说,a中的某些字段值是相同的不能用索引的方法防止相同纪录的产生。请问各位有更好的方法吗?
...全文
42 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxzz 2002-03-15
  • 打赏
  • 举报
回复
谢谢大家了,虽然我对触发器还不太清楚,但我知道编程的东西别人给你指点了方向,其他的就必须靠自己去学习去实践的。有大家的帮助我想这个问题我应该可以解决的。再次谢谢大家了。
  • 打赏
  • 举报
回复
在界面逻辑方面控制一下。

新增:使用INSERT
新增时确认,新增后:
如果仍显示新增的记录:使INSERT按钮变灰。//少见。
ELSE 回到初始状态,等待用户事件(新增、修改、删除……)。

其它情况不会出现重复录入吧。
loverlv 2002-03-15
  • 打赏
  • 举报
回复
其实用我倾向与用query控件,效率高嘛!
但桌面的程序我用table控件,简单啊!
loverlv 2002-03-15
  • 打赏
  • 举报
回复
我所知道的也就是以上这两个方法!不过、我觉得要是c/s结构,最好是用触发器来实现!
而对于那些桌面数据库就用table的locate方法查找!
可以这样写:
if not table1.locate('字段名称1,字段名称2,...','相应的查找值列表',[搜索条件]) then
do your somthing
else
wornning!
yuchao1981 2002-03-15
  • 打赏
  • 举报
回复
SQL有一个IN的指令,INSERT前IN一遍就行了
flyby 2002-03-15
  • 打赏
  • 举报
回复
if ....then 不算触发器
触发器是这样的:
他是一段程序或者说是一个操作;
它应该属于数据表的一部分;
它规定了该数据表发生变化(insert、update、delete)之前或者之后要发生的操作。
例如,你可以间隔表A的触发器,规定在对A进行insert之间,进行这样的操作:
判断表A内是否存在您要insert 的记录,如果有就取消insert 操作,否则,继续。
erickleung 2002-03-15
  • 打赏
  • 举报
回复
你是用那个数据库. 一般的client/Server数据库, 在应有的设定下,
绝不会发生的. 若不介意的话, 最好先介绍多一些你的数据表的结构.
让大家叁详.
如是xBase的文件,你得要做少许编程呢,才可防止的.
foxzz 2002-03-15
  • 打赏
  • 举报
回复
bigban 不知你能否再说详细一点呢?
我用if ....then 算不算您说的触发器呢?(由于我是初学者很多东西都不知道)
是否需要将要插入的纪录和a中的所有记录进行比较呢?
SQL79 2002-03-15
  • 打赏
  • 举报
回复
设置主键,
或者将需要插入的数据作为条件Select一下,没有记录就执行插入!
bigban 2002-03-15
  • 打赏
  • 举报
回复
做一个触发器,当插入或修改记录时触发,
在这个触发器中检测新插入或修改的记录是否已在表中存在,如果不存在,执行插入或修改操作,否则什么也不做.
SQL79 2002-03-15
  • 打赏
  • 举报
回复
设置主键,
或者将需要插入的数据作为条件Select一下,没有记录就执行插入!
rwdx 2002-03-15
  • 打赏
  • 举报
回复
用触发器应该可以做得到

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧