我通过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
结构');
或者我没有正确理解这个问题。如果不回信,我会尽力帮忙的。