sql 预先判断问题

swoky 2011-07-28 11:06:41
现在有个sql:
insert into table (A,B,C) values(4,7,9)

要求:在这个SQL传入到数据库执行前,预先判断该SQL是否符合一定的条件

比如指定条件为: (a>5 and b<6) or c<10
如果将要插入的值符合上面的条件,则允许执行,否则不允许执行

上面只是一个例子,现系统中有很多表,都有这个需求,所以像A,B,C都不是固定的,相应的条件也不是固定的

不知道有没有简单的办法来实现
...全文
114 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
TKD03072010 2011-07-28
  • 打赏
  • 举报
回复
在相关字段添加check约束 应该就行了吧?
swoky 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zl3450341 的回复:]

思路比较多吧。
要是我来做的话,可能会采用AOP来做吧。 拦截 执行sql的方法,进行参数检查
[/Quote]
现在拦截SQL都不是问题,主要在参数检查上面,怎么用程序来检查?
swoky 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhao251021539 的回复:]

触发器啊。。可以解决啊
[/Quote]
可以再详细点吗
zl3450341 2011-07-28
  • 打赏
  • 举报
回复
思路比较多吧。
要是我来做的话,可能会采用AOP来做吧。 拦截 执行sql的方法,进行参数检查
meran 2011-07-28
  • 打赏
  • 举报
回复
触发器啊。。可以解决啊
swoky 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feifeikub 的回复:]

不可以先判断a,b,c的条件再执行SQL语句吗?那样的SQL语句都是满足条件的。
[/Quote]

就是想先判断A,B,C的条件,现在的问题是怎么判断A,B,C的值是否符合(a>5 and b<6) or c<10这个条件
feifeikub 2011-07-28
  • 打赏
  • 举报
回复
不可以先判断a,b,c的条件再执行SQL语句吗?那样的SQL语句都是满足条件的。
langga跳跃 2011-07-28
  • 打赏
  • 举报
回复
可以用存储过程吧1
yjfjebj789 2011-07-28
  • 打赏
  • 举报
回复
这个可以做成类似 平衡公式那种判断,把条件和参数独门开来,那公式拆开,用数组什么的。。。。
swoky 2011-07-28
  • 打赏
  • 举报
回复
谢谢大家,己经初步搞定了
zn85600301 2011-07-28
  • 打赏
  • 举报
回复
不建议使用触发器 等数据库内部处理 原因很简单到时候丢数据 很难界定

还是在程序中控制的好 而且可以log出条件不合法的信息

问题是如果你的参数命名是否一致 如果统一的话 可以去维护一个hashmap
里面是参数对应的 条件 >1 <2 !=0 之类的
参数的条件可以放在properties文件中读取 便于修改
Jeelon 2011-07-28
  • 打赏
  • 举报
回复
对 触发器应该可以解决 而且比较好 当满足(a>5 and b<6) or c<10条件就执行SQL语句 否则回滚...
meran 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 swoky 的回复:]
引用 7 楼 tkd03072010 的回复:

在相关字段添加check约束 应该就行了吧?


这得在数据库里面做吧,想在数据库之前就做了,比如有没什么规则引擎之类的东西可以实现的
[/Quote]

不过按这个理解 触发器也是在数据库里面做啊, 不过多个表需求不同建议还是 在数据库里做吧
meran 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 swoky 的回复:]
引用 3 楼 zhao251021539 的回复:

触发器啊。。可以解决啊

可以再详细点吗
[/Quote]

你自己在网上看看触发器啊~~~,可以设置触发器在你插入数据的时候进行验证,满足条件才能插入
swoky 2011-07-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tkd03072010 的回复:]

在相关字段添加check约束 应该就行了吧?
[/Quote]

这得在数据库里面做吧,想在数据库之前就做了,比如有没什么规则引擎之类的东西可以实现的

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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