python - 如何检查表中是否已存在特定技能,然后将该技能 ID 添加到另一个表中?
问题描述
我必须为员工门户创建一个新的 API。我有两个表emp_skills(列:id、emp_id、skill_id)和Skills_master(列:skill_id、skill_name)。
首先,我必须检查员工添加到其信息中的特定技能是否已经存在于Skills_master表中,如果存在,那么只需将该 Skill_id 添加到emp_skills表中。如果没有,则在技能主表中添加为新条目。
我已经完成了以下操作,我得到的错误是:
添加员工“NoneType”对象不可下标时发生异常
skill_name = req_json.skill_name
validation_query = """select count(skill_name) from skills_master where skill_name='{skill_name}'""".format(skill_name=skill_name)
output = RDBMSUtility().execute_select_query(validation_query)
if output[0][0] != 0:
query4 = f"""select skill_id from skills_master where skill_name = '{req_json.skill_name}'"""
output3 = RDBMSUtility().execute_query(query4, True)
skill_id = output3[0][0]
RDBMSUtility().update_table("emp_skills", f""" "skill_id" = '{skill_id[0]}'
""", f"emp_id = '{req_json.emp_id}'")
else:
query5 = f"""insert into skills_master ("skill_name") VALUES ('{skill_name}')"""
RDBMSUtility().execute_query(query5, False)
解决方案
您的查询结果是None
并且您正在尝试将其用作list
对象。
首先检查您的原始查询是否有效RDB
以及结果是什么。然后检查validation_query
字符串在 python 中是否正确写入,可能是简单的打印。然后使用try/except
块。
推荐阅读
- python - Reading and writing a json file in python
- blazor - "'<' is an invalid start of a value." ASP.NET-Core hosted Blazor Webassembly
- java - Microsoft Edge 的“无效参数:'handle' 必须是字符串”错误以及如何添加“w3c:false”功能?
- python - 如何使用 Python 中的 Open Street Map 获取附近的道路信息?
- java - 使用eclipse和MySql hibernate在java中自动生成带有卷边距离的序列键
- javascript - 根据其他数组过滤数组
- swiftui - 在 SwiftUI 中向左而不是向右导航?
- firebase - 使用flutter firebase的应用程序内部通知
- javascript - 当我使用 Observables 时 Angular ViewChild 不工作
- repository - 干净架构层方法中的网络请求轮询逻辑布局