【问题标题】:SQL Transaction ELSE IF with SELECT带有 SELECT 的 SQL 事务 ELSE IF
【发布时间】:2015-10-18 17:47:06
【问题描述】:

我正在尝试创建一个查询,它将检查它是否存在于一个表中,如果它存在,它只会将一个添加到数量 qty 否则它将从另一个表中的选择中插入,在我的情况下是 @ 987654323@

这是我目前的 sql。

设置
    事务隔离级别可序列化;开始交易;如果存在(
        选择
            PID
        从
            temp_sales
        在哪里
            条形码 = '4800556410652'
    ) 开始
更新
    temp_sales
放
    数量 = 数量 + 1
在哪里
    条形码 = '4800556410652' END ELSE INSERT INTO temp_sales (
        0,
        (
            选择
                产品.ID,
                products.product_sprice 作为价格,
                1、
                1 * 价格,
                '4800556410652',
                '101',
                '行政'
            在哪里
                条形码 = '4800556410652'
        )
    ) 结束提交事务;

我一直在关注UPDATE if exists else INSERT in SQL Server 2008 的这个 stackoverflow 答案,但我没有运气。

MySQL 错误 #104 #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TRANSACTION' at line 1

我做错了什么?

编辑

PL: vb.net 数据库:MySQL(xampp)

【问题讨论】:

  • MySQL != MS SQL Server。它们有不同的语法
  • 我正在使用 mysql、vb.net 和 xampp MySQL
  • 然后您按照 Sql Server 的示例期望它可以工作?
  • 那我很糟糕,我是事务新手,我只知道 SQL 的基础知识

标签: mysql transactions


【解决方案1】:

感谢cmets,我的错。我关注的是 SQL 服务器查询,而不是关注 MySQL 查询。

但这是经过几次额外搜索后的答案(当然是在评论员的帮助下)-谢谢

答案:

插入 temp_sales ( ID、pid、价格、数量、总计、条形码、 pos_id,出纳员 ) 选择 '0', ID 为 pid, products.product_sprice, 1、 products.product_sprice, @条码, '101', '行政' 从 产品 在哪里 条形码 = @barcode 重复键 更新 数量 = 数量 + 1, 总计 = 价格 * 数量

【讨论】:

    猜你喜欢
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 2012-11-11
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多