我的表格包含id
(主键),user_id
和name
。如果user_id
与现有user_id
不同,我想插入新记录,如果user_id
相同但name
user_id
}}已更改,name
应该更新。怎么做。我已经完成了此操作,但它不会针对具有不同user_id
的相同name
进行更新。
CREATE TABLE test
(
id int auto_increment primary key,
user_id int,
name varchar(60)
);
INSERT INTO test (user_id,name)
VALUES('01','user1');
INSERT INTO test (user_id,name)
VALUES('02','user2');
INSERT INTO test (user_id,name)
VALUES('03','user3');
insert into test (user_id, name) values('01', 'new_user') on duplicate key update name=values(name);
以下是sqlfiddle
:http://sqlfiddle.com/#!2/aa18e/1
答案 0 :(得分:1)
您需要将user_id
声明为UNIQUE
,例如:
CREATE TABLE test
(
id int auto_increment,
user_id int,
name varchar(60),
primary key(id),
unique key(user_id)
);