我有3张桌子。
Table A | |||
---|---|---|---|
ID (密钥) | 姓名 | 日期 | 电话 |
1 | 亚当 | 2021/05/30 | 5552345 |
2 | 布朗温 | 2021/04/21 | 5557890 |
3 | 皮特 | 2021/03/12 | 5555677 |
就像我在评论中说的,你需要一个 UNIQUE 约束,以便 Mysql 知道何时必须更新行
每次MySQL在插入语句中找到Peet时,都会使用UNIQUE(
名称)
,它将使用提供的新数据更新所有其他tel
,shirt
,hair
,eyes
CREATE TABLE TableC ( `id` INTEGER AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(7), `tel` INTEGER, `shirt` VARCHAR(10), `hair` VARCHAR(10), `eyes` VARCHAR(10), UNIQUE(`name`) ); INSERT INTO TableC (`id`, `name`, `tel`, `shirt`, `hair`, `eyes`) VALUES ('1', 'Adam', '5552345', 'blue', 'blond', 'blond'), ('2', 'Bronwyn', '5557890', 'red', 'brown', 'green');
INSERT INTO TableC (`name`, `tel`, `shirt`, `hair`, `eyes`) VALUEs ('Peet', 5555677, 'green', 'red' , 'green') ON DUPLICATE KEY UPDATE `tel` = VALUES(`tel`) , `shirt`= VALUES(`shirt`) , `hair` = VALUES(`hair`) , `eyes` = VALUES(`eyes`)
INSERT INTO TableC (`name`, `tel`, `shirt`, `hair`, `eyes`) VALUEs ('Peet', 5555677, 'red', 'red' , 'green') ON DUPLICATE KEY UPDATE `tel` =VALUES(`tel`) , `shirt`= VALUES(`shirt`) , `hair` = VALUES(`hair`) , `eyes` = VALUES(`eyes`)
SELECT * FROM TableC
ID | 姓名 | 电话 |衬衫 |头发 |眼睛 -: |:------ |------: |:---- |:---- |:---- 1 |亚当 |5552345 |蓝色 |金发女郎 |金发 2 |布朗温 |5557890 |红色 |布朗 |绿 3 |皮特 |5555677 |红色 |红色 |绿色
数据库<>在这里小提琴