请问对数据库去重复的的操作

成才叶 发布于 2016/02/16 11:51
阅读 433
收藏 0

@JFinal 你好,想跟你请教个问题:我现在数据库有表T_KEYPOOL  字段分别是
APP        VARCHAR2(100) 
SAFEKEY    VARCHAR2(100) 
APPKEY     VARCHAR2(100) 
USERID     NUMBER 

现在我的需求是要检查 ID,APP,SAFEKEY,APPKEY 这几个字段 相互不重复
一个 app 只能出现在一条记录上,
同样 appkey和SAFEKEY及ID 也是一样 

请问这个后端和前端的该怎么操作呢!!求救... 我的后端用的jfinal 前端是bjui

加载中
0
JFinal
JFinal
相互不重复是什么意思? 是组合起来不重复就可以?具体一些
成才叶
成才叶
回复 @JFinal : 那是要写两个方法了 一个insert into时的验证判断,一个是update时的判断验证 对吗?? 能否再细一点....劳您费心!!
JFinal
JFinal
回复 @成才叶 : 在插入、修改这个字段的数据之前,对数据进行验证,然后插入、修改时的 sql ,用 where 条件再次保障唯一性即可
成才叶
成才叶
您好!是这样的,比如我app字段填写了工人,下一次新增的时候就不能填工人了.并且给出提示:已经存在..别的字段也一样...不知道我的描述到位了没有,让您费心了!!
0
perryzheng
perryzheng

1. Data Base Level

   把这几个字段都设置为unique

2.  Server Code Level

  在每次执行insert或update之前都去数据库中查询一下" select * from t_keypool where app=<app value> or safekey=<safe key value> or .....", 检查返回结果,如果结果count大于1,就返回相应的重复信息


BTW:这个和jfinal框架有啥关系

成才叶
成才叶
@perryzheng 你好,想跟你请教个问题: 您好! 我想问下APP cannot be resolved to a variable 无法解析为变量该怎么解决呢!我的model中写了public T_KEYPOOL getByT_KEYPOOL(String APP,String SAFEKEY,String APPKEY ,Integer USERID){ return dao.findFirst("sel...
成才叶
成才叶
回复 @perryzheng : 我具体要在我后端 该怎么写呢!插入和修改前进行判断,那我怎么获取到结果和我插入修改的值 进行比较呢
perryzheng
perryzheng
回复 @成才叶 : <app value> 是你要更新的字段的值,
成才叶
成才叶
请问 app=<app value> 这个写法是什么意思呢,另外我是要在我新增和修改的方法中添加吗....这么做好像不太可能吧
成才叶
成才叶
请问 app=<app value> 这个写法是什么意思呢,另外我是要在我新增和修改的方法中添加吗....这么做好像不太可能吧
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部