如果不存在,如何插入数据,或者更新它?

vom3gejh  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(308)

如果表中存在行,我想更新行 bag 否则插入新行
这些类型的列,我用它在表袋

car_name : varchar
p_id : int
quantity : int
price_one_piece : int

我使 car_name 以及 p_id 作为主键(复合键)
我在xampp的mysql例程中编写了这段代码,它保存在xampp中没有错误,但是当我尝试在xampp中执行它时,它会出错
以下查询失败:“set@p0='mohamed';设置@p1='1';设置@p2='1';设置@p3='1';呼叫 bag_insert (@p0,@p1,@p2,@p3);“mysql说:


# 1062 - Duplicate entry 'car_name-1' for key 'PRIMARY'

代码:

IF EXISTS(SELECT * FROM bag WHERE p_id = p_id and `car_name`= car_name)THEN 
UPDATE bag set`car_name`='car_name',`p_id`=p_id,`quantity`=quantity,`price_one_piece`=price_one_piece WHERE `p_id`=p_id;

ELSE 
INSERT INTO bag (car_name,p_id,quantity,price_one_piece) VALUES (car_name,p_id,quantity,price_one_piece); 
END IF
kx5bkwkv

kx5bkwkv1#

我用电脑解决了这个问题

> replace INSERT INTO bag (car_name,p_id,quantity,price_one_piece)
> VALUES (car_name,p_id,quantity,price_one_piece);

我找到了解决办法https://chartio.com/resources/tutorials/how-to-insert-if-row-does-not-exist-upsert-in-mysql/

相关问题