在一个查询 MYSQL 中插入和更新

2023-12-13

我有一个简单的 INSERT 查询,在单击按钮的事件上运行,这会获取变量并将它们插入到order table.

我也想更新我的bands表将库存减少 1,直到达到 0,然后显示空或已售完,而不是变为负数,例如:-6

要知道选择了什么频段,我可以使用:

WHERE Band_id = $Band_id");

在同一份声明中。

当前的插入看起来像:

"INSERT INTO orders (band_id,user_id,user_name,band_name,band_venue) VALUES('$Band_id', '$user_id', '$user_name', '$name', '$venue')";

结论

需要将我的 INSERT 更改为 UPDATE,同时检查其是否是当前选定的频段。

已提供答案检查

这个解决方案已经提供得很好,而且很有意义,但我不够熟练,无法理解为什么它不能正常运行。

 $sql = "INSERT INTO orders (band_id,user_id,user_name,band_name,band_venue) VALUES('$Band_id', '$user_id', '$user_name', '$name', '$venue')";

 $sql_create ="CREATE TRIGGER tg_ai_orders
        AFTER INSERT ON orders
        FOR EACH ROW
          UPDATE bands 
          SET stock = stock - 1
          WHERE band_id = NEW.band_id";

$sql_deleat = "CREATE TRIGGER tg_ad_orders
        AFTER DELETE ON orders
        FOR EACH ROW
         UPDATE bands 
         SET stock = stock + 1
         WHERE band_id = OLD.band_id";

mysql_query ($sql, $sql_deleat, $sql_create, $linkme)
    or die ("could not add to database");

如果您采用触发器方法,那么您将需要两个触发器(用于插入和删除)

CREATE TRIGGER tg_ai_orders
AFTER INSERT ON orders
FOR EACH ROW
  UPDATE bands 
     SET stock = stock - 1
   WHERE band_id = NEW.band_id;

CREATE TRIGGER tg_ad_orders
AFTER DELETE ON orders
FOR EACH ROW
  UPDATE bands 
     SET stock = stock + 1
   WHERE band_id = OLD.band_id;

Here is SQLFiddle demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在一个查询 MYSQL 中插入和更新 的相关文章

  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • 我如何在使用sequelize的包含模型中使用限制

    我想从关注模型中获取限制为 2 的用户图像 Models const Follow connector define Follow no type Sequelize INTEGER primaryKey true autoIncremen
  • 为 Zend 应用程序提供数据库处理程序的“正确”方法是什么

    假设您严格遵守某个组织的惯例Zend应用程序 http framework zend com manual en zend application html 您应该在哪里设置数据库处理程序以供应用程序开发人员访问 我知道如何设置ZendDb
  • PostgreSQL 中“-”处或附近的语法错误

    我正在尝试运行查询来更新用户密码 alter user dell sys with password Pass 133 但因为 它给了我这样的错误 ERROR syntax error at or near LINE 1 alter use
  • 每月获取记录,但如果该月没有记录,则为零

    如果我有以下 SQL 表 Tests id type receiveDate 1 Blood 2012 01 18 2 Blood 2012 01 20 3 Blood 2012 01 18 4 Blood 2012 03 01 5 Blo
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 慢速自动增量重置

    我有很多表 由于某些原因 我需要在应用程序启动时调整这些表的自动增量值 我尝试这样做 mysql gt select max id from item max id 97972232 1 row in set 0 05 sec mysql
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • MySQL/PDO::quote() 尽管使用 PDO::PARAM_INT 参数,但仍在整数周围加上引号

    无论我传递给什么值 数据类型对 它都会出现 pdo gt quote value type 它总是将其引用为字符串 echo pdo gt quote foo PDO PARAM STR foo as expected echo pdo g
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 如何处理数据库中的巨大结果集

    我正在设计一个多层数据库驱动的 Web 应用程序 SQL 关系数据库 用于中间服务层的 Java 用于 UI 的 Web 语言其实并不重要 中间服务层执行数据库的实际查询 用户界面只是要求某些数据 并不知道它是由数据库支持的 问题是如何处理
  • 无法在 Sqlite3 中添加默认值为 NULL 的 NOT NULL 列

    尝试将 NOT NULL 列添加到现有表时出现以下错误 为什么会发生这种情况 我尝试了 rake db reset 认为现有记录是问题所在 但即使重置数据库后 问题仍然存在 你能帮我解决这个问题吗 迁移文件 class AddDivisio
  • 学说迁移后备

    我们正在使用原则迁移 当迁移包含多个操作并且其中一个操作失败时 通常会出现问题 例如 如果迁移添加了 5 个外键 其中第 5 个失败 而字段长度不同 则修复字段错误并重新生成迁移不会not修复整个问题 而现在出现一个与 4 个密钥已存在有关
  • 什么是时序数据库?

    What is 时间序列数据库例如InfluxDB 我应该何时 何地使用它 请给我它的业务场景示例 检查wiki https en wikipedia org wiki Time series database 时间序列数据库 TSDB 是
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • Mysql插入表后不显示右单引号(’)

    我有一个名为 测试 的表 我插入了一行 其中包含unicode字符右单引号 0x2019在名称字段中 SQL insert into Testing values Sno Name Address insert into Testing v
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • 如何连续改变正弦声音的频率?

    我在用Pygame在窗口中渲染精灵 我想播放正弦声音 其频率取决于y该精灵的位置 我不希望信号相位不连续 实现这一目标的最佳方法是什么 我想出了这个解决方案 改变freq to newfreq然后像这样改变相位 newphase 2 np
  • 如何在 JavaScript 正则表达式中用 (n-1) 次出现的同一字符替换 (n) 次出现的字符

    我的数据是 Hello World I need Hello World 所以基本上 5 次出现的星号被替换为 4 次出现的星号 我怎样才能做到这一点在正则表达式javascript中 注意 星星的数量是动态的 我尝试过此操作 但不确定如何
  • 启动新的 Windows 应用程序:我应该使用 _TCHAR 还是 wchar_t 作为文本?

    我正在用 C 为 Windows 编写一个新的 个人爱好 应用程序 在我之前使用过的低级 Windows 内容中 TCHAR 或只是 TCHAR 用于字符串操作的数组 basic strings 使用有什么好处吗 TCHAR直接使用 Uni
  • LINQ to SQL C# 合并

    给出下表 Length Width Color ID 18 18 blue 1 12 12 red 1 我想生成单列 行 SIZES 18 x 18 12 x 12 我可以在 SQL 中执行此操作 如下所示 DECLARE SIZES VA
  • 通过使用范围解析避免多重继承引起的歧义

    这是多重继承的示例 我使用范围解析运算符而不是虚拟类来解决歧义 struct A int i struct B A struct C A struct D B C void f B i 10 void g std cout lt lt B
  • 减少两个剪切图像之间的间距

    我正在使用剪辑路径来剪辑两个图像 结果是 一切都很好 但我想像这样减少这些图像之间的间距 clip wrap display inline element webkit clip path polygon 0 100 0 0 100 0 6
  • Toast 通知不起作用

    下面的方法在调用设置 Toast 时执行 但在经过一段时间后不会显示任何 Toast Windows 8 Metro 应用程序 Toast 通知是否还需要任何设置 int scheduledToastCounter 1 public voi
  • 为什么 R 和 statsmodels 给出的方差分析结果略有不同?

    使用小型 R 样本数据集和来自的 ANOVA 示例统计模型 其中一个变量的自由度报告不同 F 值结果也略有不同 也许他们的默认方法略有不同 我可以设置 statsmodels 以使用 R 的默认值吗 import pandas as pd
  • 如何将 wav 文件转换为类似字节的对象?

    我正在尝试使用 Python 3 5 1 的 audioop 模块以编程方式分析 wav 文件以获取通道 持续时间 采样率 音量等 但是我找不到任何文档来描述如何将 wav 文件转换为 片段 参数它必须是一个类似字节的对象 有人可以帮忙吗
  • 如何从oracle数据库中删除名为“BIN$c+eOnMB3RbKSEfg/rsxtAQ==$0”的奇怪表?

    我是 Oracle 新手 为了练习 我在 Oracle 11g 及更高版本中创建了一些表 客户 司机 付款 预订 位置 区域 工作 job history select from cat语句我发现一个奇怪的表 其中包含其他创建的名为 BIN
  • TSQL 生成 5 个字符长度的字符串,所有数字 [0-9] 数据库中尚不存在

    最好的方法是什么 我需要生成一个 5 位长度的字符串 其中所有字符都是数字 但是 我需要能够执行此 x 次 用户变量 并将此随机字符串存储在数据库中 此外 我无法两次生成相同的字符串 旧琴弦将在 6 个月后被移除 伪代码 DECLARE i
  • django - 启动 dbshel​​l sqlite3 时选项太多

    我有 django 1 2 3 0 Final 我正在使用 Python 2 7 在我的设置中 我为 DATABASE ENGINE 填充了 sqlite3 我能够使用 sqlite3 在 djano manage py shell 级别
  • 为什么 Powershell 的 Tee-Object 会搞乱我的文件编码?

    周末我使用 Tee Object 生成我跟踪的日志文件的一些输出 我尝试 grep 输出文件 但无法返回任何结果 但我能够 grep 原始日志文件 Tee Object 似乎更改了文件的编码 https adamtheautomator c
  • weblogic中的类强制转换异常

    我有一个使用球衣罐子的Web应用程序 WAR文件 现在 当我尝试部署这个时 我收到类转换异常 某些引导servlet使用球衣 在分析中 我发现weblogic本身有共同的球衣罐子 模块 和我的网络应用程序有不同版本的球衣罐 现在 如果我删除
  • iPhone 4 有没有绝对确定的方法可以让 NSTimer 长期火起来

    我的 NSTimers 和后台选择器一直遇到问题 这让我抓狂 并且需要很长时间来尝试每一个调整 为了保持我的理智以及未来几代可可程序员的理智 我问这个问题 是否有绝对 100 确定的方法可以在稍后的时间点触发预定的长期计时器 无论它是否是从
  • CMake:为 #cmakedefine 变量设置不同的名称

    我知道你可以使用 CMakeconfigure file使 CMake 变量可用于您的程序 例如 我可以使用 define CMAKE BUILD TYPE 导致 define Release 但是 为了使我的代码更具可读性 我更愿意定义
  • 重定向到 https 但没有 .php

    现在我有一个https 我需要在 htaccess 中进行重定向 我可以找到这个 RewriteCond HTTPS off RewriteRule https HTTP HOST REQUEST URI L R 301 但我发现如果用户写
  • Google Script CacheService 在 sendMail 中为 inlineImages 缓存图像

    我想将图像存储在 Google Script 的缓存服务中 然后将此图像作为内联图像插入 HTML 邮件中 我已经尝试让它发挥作用 但到目前为止还没有成功 记录器中以下代码的错误是 无效参数 附件 如果我检查它显示 sendMail 中的
  • 如何动态新的匿名类?

    在 C 3 0 中 您可以使用以下语法创建匿名类 var o1 new Id 1 Name Foo 有没有办法动态创建这些匿名类到变量 Example var o1 new Id 1 Name Foo var o2 new SQ 2 Bir
  • 在一个查询 MYSQL 中插入和更新

    我有一个简单的 INSERT 查询 在单击按钮的事件上运行 这会获取变量并将它们插入到order table 我也想更新我的bands表将库存减少 1 直到达到 0 然后显示空或已售完 而不是变为负数 例如 6 要知道选择了什么频段 我可以