我通过api获取业务的值并将其插入数据库。

SNO       ID            category
1              aaa         Machine learning
2              aaa         AI
3              bbb        mobile

其中sno是设置为自动递增的主键。
两天后,为了让我的数据库保持最新,我需要从api获取新数据。
所以假设我知道id'aaa'现在还有一个类别是“数据结构”
问题:
如何更新表以反映此新类别?
我期待着
SNO       ID            category
1              aaa         Machine learning
2              aaa         AI
3              bbb        mobile
4              aaa         data structures

我不知道sno是自动递增的。
删除所有id=“aaa”的行,然后再次插入它是一个选项,但我试图避免这样做,因为这可能会增加管理费用。
我从api中得到了新的值,
所以我得到了机器学习,人工智能和数据结构(全部3个)
如果我使用,那么在我的代码中,当我遍历类别变量3时,将生成sql
INSERT INTO tablename (ID, category) VALUES ('aaa', ‘Machine learning’);
INSERT INTO tablename (ID, category) VALUES ('aaa', ‘AI’);
INSERT INTO tablename (ID, category) VALUES ('aaa', 'data structures');

因此在这种情况下,第一个和第二个insert语句将重复,我的表将有重复的行
是的。
是的。
我基本上需要检查,如果ID和类别存在于BD,如果他们不插入?(主键sno设置为自动递增)
+ Options

Field   Type    Null    Key Default Extra
uuid    varchar(50) NO      NULL
categoryName    varchar(50) NO      NULL
sno int(5)  NO  PRI NULL

最佳答案

如果您只是插入新的“数据结构”行,它将有下一个自动递增的数字,在您的情况下可能是4。唯一不是4的时间是插入一些行并删除它们,这将导致自动递增计数器更高。你可以这样插入行:
插入tablename(id,category)值('aaa','data
结构');
或者我没有正确理解这个问题。如果不回信,我会尽力帮忙的。

09-25 17:26
查看更多