Python和SQL—检查行是否存在的最有效方法—如果不存在,则插入行
我想检查什么是最有效的Python方法(因为性能),如何检查SQL中是否存在某些行,如果不存在,则插入它。 我想检查表中是否存在某个值的行,若不存在,则插入该行。 我是这样做的,但我想知道是否有更好的办法Python和SQL—检查行是否存在的最有效方法—如果不存在,则插入行,python,mysql,python-2.7,insert,Python,Mysql,Python 2.7,Insert,我想检查什么是最有效的Python方法(因为性能),如何检查SQL中是否存在某些行,如果不存在,则插入它。 我想检查表中是否存在某个值的行,若不存在,则插入该行。 我是这样做的,但我想知道是否有更好的办法 insertValue="test" mycursor.execute("SELECT * from CUSTOMERS where name ="+'insertValue') myresult2 = mycursor.fetchall() if not my
insertValue="test"
mycursor.execute("SELECT * from CUSTOMERS where name ="+'insertValue')
myresult2 = mycursor.fetchall()
if not myresult2:
print 'Row does not EXIST'
mycusrsor.execute(.....INSERT part for insertValue in table TABLE_2.....)
这是Python执行的最佳方法(代码优化),还是可以以更高效的方式(从Python代码优化的角度)执行
感谢您使用的标签,您似乎正在使用“MYSQL”。它提供了一个选项“INSERT IGNORE”,这意味着如果该键已经存在,它将不会抛出执行错误,并将转到下一行
这将被证明是最有效的方法,并且只需要很少的代码。第一个优化是不要使用
SELECT*
,而是执行SELECT
第二个,在name
列上添加索引。我从Python的角度考虑的更多,是针对执行的代码优化,而不是SQL。对不起,误会了。我现在更详细地说明了这一点,它只有在name
为PK或name
设置为UNIQUEName为not PK且未设置为UNIQUEDo时才起作用。请在手边提及此类约束