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
对不起,我不明白。你什么意思?