如何向table1无重复插入修改后的指定用户记录且原记录不影响新数据
复制指定记录并修改插入同表,保证原记录修改不影响新记录
没问题,我来帮你搞定这个数据库操作需求!先明确下你的场景和目标:
现有table1数据:
user name 1103 rack 1102 tabs 1103 aki 需求:
- 只复制
user为1103的记录,将这些记录的user改成1104后插回table1- 后续修改原
user=1103的记录时,不会影响刚插入的新记录
解决方案:使用INSERT INTO...SELECT语句
直接用这条SQL就能完成需求,而且能保证新插入的记录和原记录完全独立:
-- 筛选user=1103的记录,修改user为1104后插入同表 INSERT INTO table1 (user, name) SELECT 1104 AS user, name FROM table1 WHERE user = 1103;
为什么这样做能满足需求?
- 这条语句会把
user=1103的所有记录复制出独立的新行,只是把新行的user字段替换成1104,然后插入到表中 - 新插入的
user=1104记录和原user=1103的记录没有任何关联(比如外键、触发器绑定之类的),所以之后你修改原user=1103的记录(比如把rack改成new_rack),新插入的user=1104的rack记录完全不受影响
执行后table1的结果
| user | name |
|---|---|
| 1103 | rack |
| 1102 | tabs |
| 1103 | aki |
| 1104 | rack |
| 1104 | aki |
内容的提问来源于stack exchange,提问作者NewbieDev
相关产品推荐
相关产品推荐

