MySQL 事务 FOR COMMITING ON TRUE IF

标签 mysql sql

我需要做一个sql事务,只有当一个日期大于另一个时才提交插入,否则回滚..

这是我的:

START TRANSACTION;

INSERT INTO Cene_Prenocevanja VALUES (6, 2, 10.00, 22.39, str_to_date('01-01-1990', '%d-%m-%Y'), str_to_date('01-01-1989', '%d-%m-%Y'));

CREATE VIEW zacasni AS
SELECT Zacetek_Veljavnosti FROM Cene_Prenocevanja WHERE IDCene_Prenocevanja=6
INTO @zacetek;
SELECT Konec_Veljavnosti FROM Cene_Prenocevanja WHERE IDCene_Prenocevanja=6
INTO @konec;

IF @zacetek < @konec THEN
    COMMIT;
ELSE
    ROLLBACK;
END IF;

这些是我的回应...

IF 在这个位置无效

错误代码:1064。您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“IF @zacetek < @konec THEN COMMIT”附近使用的正确语法

最佳答案

像这样? (来自 krokodilko 的评论)

START TRANSACTION;

CREATE VIEW zacasni AS
SELECT Zacetek_Veljavnosti FROM Cene_Prenocevanja WHERE IDCene_Prenocevanja=6
INTO @zacetek;
SELECT Konec_Veljavnosti FROM Cene_Prenocevanja WHERE IDCene_Prenocevanja=6
INTO @konec;

IF @zacetek < @konec THEN
    INSERT INTO Cene_Prenocevanja VALUES (6, 2, 10.00, 22.39, str_to_date('01-01-1990', '%d-%m-%Y'), str_to_date('01-01-1989', '%d-%m-%Y'));
END IF;

COMMIT;

关于MySQL 事务 FOR COMMITING ON TRUE IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43535586/

相关文章:

mysql - 错误 #1046 - XAMPP 上未选择数据库 SQL 导入

sql - 在同一行中添加列字段值?

mysql - WAMP - mysql 错误 500 - 检索 http ://localhost/phpmyadmin/时出错

java - ResultSet关闭后不允许操作,mysql

mysql - 如何在MySQL "EXECUTE STATEMENT USING"语句中使用变量列表?

SQL:替换每个名称的最后一年

sql - 在 SSIS 2012 的 OLE DB 源中使用动态 SQL

php - MySQL存储特殊字符(Android、PHP也有涉及)

MYSQL GROUP_CONCAT 和半剂量 JOIN

javascript - 第二个下拉选择与第一个下拉选择的选择相关