Mysql使用存储过程将vb6中的2个值与数据库中的2列进行比较
我的数据库中有一个Mysql使用存储过程将vb6中的2个值与数据库中的2列进行比较,mysql,sql,database,vb6,sql-insert,Mysql,Sql,Database,Vb6,Sql Insert,我的数据库中有一个products表,其中包含列/字段: 产品ID 产品名称 描述 供应商 购买日期 数量 现在,我想要实现的是: 每次我想在我的产品表中添加新值时,新输入的“productname”和“supplier”值将比较产品表中现有的所有值 场景: 如果新产品名称和供应商值已存在于产品表中,则新值的数量将添加到现有值的数量中 否则,如果不存在,则将新值添加到products表中 以下是试用过的代码,但它不起作用: Delimiter // CREATE PROCEDURE
products
表,其中包含列/字段:
- 产品ID
- 产品名称
- 描述
- 供应商
- 购买日期
- 数量
- 每次我想在我的
表中添加新值时,新输入的“productname”和“supplier”值将比较产品
表中现有的所有值产品
- 如果新产品名称和供应商值已存在于
表中,则新值的数量将添加到现有值的数量中产品
- 否则,如果不存在,则将新值添加到
表中products
Delimiter //
CREATE PROCEDURE `wew`(pid int,pname varchar(50),pdesc varchar(50),psupp varchar(50),pdate date,pquant int)
begin
declare lloyd char default null;
select productname from products where productname=pname LIMIT 1 into lloyd for update;
if(lloyd) then
update products set quantityleft=quantityleft+pquant where productname=pname;
else
insert into products (productid,productname,proddescription,supplier,lastpurchasedate,quantityleft) values(pid,pname,pdesc,psupp,pdate,pquant);
end if;
end;
//
你能帮我做这个吗?我真的很困惑
描述产品:
SQL result
Host: localhost
Database: prodpurchase
Generation Time: Mar 24, 2013 at 03:52 PM
Generated by: phpMyAdmin 3.2.4 / MySQL 5.1.41
SQL query: Desc Products;
Rows: 7
Field Type Null Key Default Extra
ProdID int(5) NO PRI NULL auto_increment
ProdName varchar(50) NO UNI NULL
ProdSupplier varchar(250) NO UNI NULL
ProdDescription varchar(250) NO NULL
ProdDate date NO NULL
ProdPrice double NO 0
ProdQuantity int(50) NO NULL
您可以利用MySQL的 首先,您需要在以下列中添加一个
唯一的约束:productname
和supplier
:
ALTER TABLE products ADD CONSTRAINT tb_uq UNIQUE (productname, supplier)
一旦你完成了这个任务
INSERT INTO products (productid, productname, proddescription, supplier, lastpurchasedate, quantityleft)
VALUES (pid, pname, pdesc, psupp, pdate, pquant)
ON DUPLICATE KEY UPDATE quantityleft = quantityleft + pquant;
你知道吗,伙计,你真是太棒了!因为你,我几乎所有的数据库项目都成功地完成了。谢谢作为一名菲律宾人,这让我更加自豪。非常感谢。上帝保佑你和你的家人。嘿,伙计,我的密码有错误。每当我和供应商有相同的名称时,它就会显示“重复”。我想实现,一个产品可能有很多供应商,一个供应商可能有很多产品。差不多吧。希望我能向您说明清楚。将此声明的结果与您的问题一起发布:DESC product
对不起,我不明白。你什么意思?