首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中的条件插入

mysql中的条件插入
EN

Stack Overflow用户
提问于 2012-10-16 18:04:10
回答 2查看 227关注 0票数 0

我真的是mysql的初学者。在甲骨文中,我们可以使用触发器,它可以检测插入元素,并允许在发生错误时完全中断insert命令。我发现mysql也支持触发器,但是如果它们不满足规则,我们如何使用它们来检测插入参数并阻止它们被插入。

代码语言:javascript
复制
e.g. INSERT INTO accounts (userId, balance) VALUES ('12','450'); // Valid
     INSERT INTO accounts (userId, balance) VALUES ('12','-574'); // Invalid

if(balance<0){
  Do not insert;
}
else{
   Insert;
}

注意到:我正在处理并发事务,因此严格需要触发器,即最低级别的错误检测,这样就没有人能够入侵。任何帮助都将不胜感激。谢谢,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-16 18:15:36

或使用预插入触发器。

代码语言:javascript
复制
DELIMITER $$

CREATE TRIGGER au_a_each BEFORE INSERT ON accounts FOR EACH ROW
BEGIN
IF new.balance > 0 THEN
  BEGIN
    INSERT INTO b (id,balance) VALUES (new.id, new.balance);
  END 
END $$
DELIMITER ;

mysql文档中的更多信息:http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html

PS:编程第1课(大写"o") -与任何编程/脚本语言文档交友

票数 2
EN

Stack Overflow用户

发布于 2012-10-16 18:08:34

您可以在mysql中使用插入、忽略和设置ALTER字段约束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12920765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档