带有 SELECT 的 SQL 事务 ELSE IF
Posted
技术标签:
【中文标题】带有 SELECT 的 SQL 事务 ELSE IF【英文标题】:SQL Transaction ELSE IF with SELECT 【发布时间】: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 的这个 *** 答案,但我没有运气。
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 的基础知识 【参考方案1】:感谢cmets,我的错。我关注的是 SQL 服务器查询,而不是关注 MySQL 查询。
但这是经过几次额外搜索后的答案(当然是在评论员的帮助下)-谢谢
答案:
插入 temp_sales ( ID、pid、价格、数量、总计、条形码、 pos_id,出纳员 ) 选择 '0', ID 为 pid, products.product_sprice, 1、 products.product_sprice, @条码, '101', '行政' 从 产品 在哪里 条形码 = @barcode 重复键 更新 数量 = 数量 + 1, 总计 = 价格 * 数量【讨论】:
以上是关于带有 SELECT 的 SQL 事务 ELSE IF的主要内容,如果未能解决你的问题,请参考以下文章
SQL 用单词 else 替换空的 SQL SELECT 将结果发布到 Oracle