php - mysql中的条件插入

标签 php mysql

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

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;
}

注意:我正在处理并发交易,所以严格需要触发器,即最低级别的错误检测,这样就没有人可以破解. 任何帮助将不胜感激。谢谢,

最佳答案

或者使用 BEFORE INSERT 触发器

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”)- 与任何编程/脚本语言的文档成为 friend

关于php - mysql中的条件插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12920765/

相关文章:

MySQL:使用同一列的值更新表列

MYSQL 多次连接表

PHP & MySQL INSERT INTO 问题

php - PhpStorm 中的 XDebug session 卡在 curl_exec 调用上

php - 是什么导致重定向循环?

php - 使用复选框和 AJAX 添加到 mysql

php - 如何使用 MySQL 查询创建表

mysql - 无法使用 Django 3.0.3 中的迁移 API 使用 ModelState 和 ProjectState 进行迁移

php - php mail() 是群发邮件的好选择吗?

php - 将选择多个表单的值添加到mysql