【发布时间】:2013-09-19 01:56:36
【问题描述】:
我有三个表,分别是customer、stock、invoice。
customer table PK is CNo(Customer No)
stock table PK is PNo(Product NO)
invoice 表获取两个 PK(来自 customer 表的 CNo 和来自 stock 表的 PNo)作为其关联键。
我想做的是,通过invoice 表更新股票表QuntyAvailable 列。
例如。当客户从PNo 2(即 Dettol)获得 2 个 Quantities 时,它会自动将上述产品自己行的库存表 QuntyAvailable 列更新为 18(QuntyAvailable-Qty)。
我多次尝试各种查询,但只得到错误。像PK不能更新.. 呜呜呜……
请帮助我,谢谢。
customer table
CNo(PK) | Name | Address
1 | Jhon | 23, Hill St, NY.
2 | Sam | 24, Bejin , Chaina.
3 | Nic | 25, London ,England.
stock table
PNo(PK) | Description | Each Price | QntyAvailable
1 | Dettol | $2 | 10
2 | Astra | $5 | 20
invoice table
CNo(PK) | PNo(PK) | Qty | value
1 | 2 | 2 | $10
2 | 1 | 3 | $6
更新完成后,我想要这样的库存表...
stock table
PNo(PK) | Description | Each Price | QntyAvailable
1 | Dettol | $2 | 7
2 | Astra | $5 | 18
请帮帮我..我正在使用 mysql 服务器和 netbeans IDE
我的查询 -------------
s.executeUpdate("INSERT INTO invoice(CNo,PNo,Qty,Value) VALUES('1','2','10','150')"); s.executeUpdate("更新库存集 QuntyAvailable=QuntyAvailable-10 WHERE Pno ='2'");
【问题讨论】:
-
感谢您发布您的要求。现在请发布您的尝试...
-
你目前使用的查询是什么?
-
s.executeUpdate("INSERT INTO invoice(CNo,PNo,Qty,Value) VALUES('1','2','10','150')"); s.executeUpdate("更新库存集 QuntyAvailable=QuntyAvailable-10 WHERE Pno ='2'");
-
我用这段代码尝试了很多,但我无法解决错误。代码 -- 在发票上插入后创建触发器 UpdateStoock 为每行开始更新股票 SET QntyAvailable=(QntyAvailable-new.Qty) WHERE Pno =new.Pno Error is "com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in您的 SQL 语法;查看与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 '' 附近使用的正确语法“帮助