我正在尝试创建一个查询,该查询将检查它是否存在于表中,如果存在,它将添加一个到quantityQty
否则它将从其他表中选择插入,在我的例子中是temp_sales
这是我到目前为止的sql。
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; BEGIN TRANSACTION; IF EXISTS ( SELECT pid FROM temp_sales WHERE barcode = '4800556410652' ) BEGIN UPDATE temp_sales SET qty = qty + 1 WHERE barcode = '4800556410652' END ELSE INSERT INTO temp_sales ( 0, ( SELECT products.ID, products.product_sprice as price, 1, 1 * price, '4800556410652', '101', 'admin' WHERE barcode = '4800556410652' ) ) END COMMIT TRANSACTION;
我一直在SQL Server2008中跟踪UPDATE if exists else INSERT中的stackoverflow答案,但我没有运气。
MySQL错误#104#1064-您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以了解第1行“transaction”
附近使用的正确语法
我做错了什么?
编辑
PL:VB.NET DB:MySQL(xampp)
谢谢你的评论,我的错。我关注的是SQL server查询,而不是MySQL查询。
不过,经过几次额外搜索(当然是在评论员的帮助下),以下是答案--谢谢
答:
INSERT into temp_sales ( ID, pid, price, qty, total, barcode, pos_id, teller ) SELECT '0', ID as pid, products.product_sprice, 1, products.product_sprice, @barcode, '101', 'admin' FROM products WHERE barcode = @barcode ON DUPLICATE KEY UPDATE qty = qty + 1, total = price * qty
主要内容:事务的属性,事务执行流程在数据库中,我们将一条 SQL 语句称为一次基本的操作。将若干条 SQL 语句“打包”在一起,共同执行一个完整的任务,这就是事务。 事务( Transaction)由一次或者多次基本操作构成,或者说,事务由一条或者多条 SQL 语句构成。 事务有一个最显著的特征,就是它包含的所有 SQL 语句作为一个整体向数据库提交,只有所有的 SQL 语句都执行完成,整个事务才算成功,一旦某个 SQL 语句执行
问题内容: 我从事SQL的时间不长,但是我想我知道,通过将SQL语句包装在事务中可以完成所有语句,或者没有一个完成。这是我的问题。我有一个具有lineitem集合的订单对象。订单项与order.OrderId相关。我已经验证 所有ID都已设置并且正确, 但是当我尝试保存(插入)订单时,我得到 的INSERT语句与FOREIGN KEY约束“FK_OrderItemDetail_Order”冲突。
主要内容:COMMIT命令,ROLLBACK命令,SAVEPOINT命令,SET TRANSACTION命令事务是与数据库相反执行的工作单元,从数据库读取或写入数据库的任何事务。事务是对数据库的一项或多项更改的传播。 例如,如果我们创建记录、更新或删除表的历史记录,那么也应该创建事务。控制数据完整性的操作是必不可少的,它用于处理数据库的错误。我们向组中添加一些 SQL 查询并执行事务部分。 事务属性: 事务有四个属性,称为 ACID 属性 - 原子性 - 确保与工作单元的所有操作都成功完成; 否
主要内容:开始和结束事务,提交事务,回滚事务,自动事务控制在本章中,我们将讨论和学习PL/SQL中的事务。 数据库事务是由一个或多个相关SQL语句组成的原子工作单元。它被称为原子操作,因为构成事务的SQL语句带来的数据库修改可以共同提交,即永久化到数据库或从数据库回滚(撤销)。 成功执行的SQL语句和提交的事务不一样。即使成功执行SQL语句,除非提交包含语句的事务,否则可以回滚该语句,并且可以撤消语句所做的所有更改。 开始和结束事务 事务有开始和结束。当
在本例中,我使用Angular并希望使用(从版本4开始可用): 如何使用实现相同的行为?
1. 前言 在上一小节中,我们介绍了事务的概念和基本使用,探讨了事务的四大特性,本小节我们将更加深入的学习事务。 在实际的生产环境中,偶尔会遇到大量并发访问的情况;大量的并发会导致数据的竞争,从而引起一系列的并发问题。 本小节,我们将一起学习 SQL 的4种事务隔离机制,以及与之对应的3种并发异常。 本小节测试数据如下,请先在数据库中执行,本小节的所有操作若无特殊说明默认在 MySQL 中执行。