Python 如何避免重复输入数据库?
我想筛选数据库插入以避免重复,这样它每1个Python 如何避免重复输入数据库?,python,mysql,Python,Mysql,我想筛选数据库插入以避免重复,这样它每1个ProductId只插入1个产品。我该怎么做? 这是我的插页: add_data = ("INSERT INTO productdetails" "(productId, productUrl, discount, evaluateScore, volume, packageType, lotNum, validTime, storeName, storeUrl, allImageUrls, description) "
ProductId
只插入1个产品。我该怎么做?
这是我的插页:
add_data = ("INSERT INTO productdetails"
"(productId, productUrl, discount, evaluateScore, volume, packageType, lotNum, validTime, storeName, storeUrl, allImageUrls, description) "
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)")
这就是它应该看起来的样子,但是在PyMySQL中,如何在mysql.connector中执行相同的操作
INSERT INTO producttable (productId, productTitle, salePrice, originalPrice )
SELECT * FROM (SELECT %(productId)s, %(productTitle)s, %(salePrice)s, %(originalPrice)s) AS tmp
WHERE NOT EXISTS (
SELECT productId FROM producttable WHERE productId = %(productId)s
)
LIMIT 1;
您可以通过中的字符串插值创建Insert语句,并将它们添加到集合中。集合集合本身只保留唯一的字符串。然后,您可以将唯一的SQL insert语句集大容量加载到RDBMS中。您可以通过中的字符串插值创建insert语句,并将它们不断添加到集合中。集合集合本身只保留唯一的字符串。然后,您可以将一组独特的SQL insert语句大容量加载到RDBMS中。正确的方法是在数据库端。您需要添加一个唯一的约束:
ALTER TABLE productdetails
ADD UNIQUE (productId);
你可以做的不仅仅是简单的插入,而不需要任何where或if
为什么??
如果您按照yayati的建议保留一个集合,那么您将通过将集合及其周围的处理作为瓶颈来限制自己
如果添加了约束,那么即使有数百万行,也会让数据库快速检查唯一性。然后,如果数据库不是唯一的,您将看到它是否返回错误。正确的方法是在数据库端执行此操作。您需要添加一个唯一的约束:
ALTER TABLE productdetails
ADD UNIQUE (productId);
你可以做的不仅仅是简单的插入,而不需要任何where或if
为什么??
如果您按照yayati的建议保留一个集合,那么您将通过将集合及其周围的处理作为瓶颈来限制自己
如果添加了约束,那么即使有数百万行,也会让数据库快速检查唯一性。然后,如果DB不是唯一的,您将看到它是否返回错误。将列设置为唯一。然后使用INSERT IGNORE语句,如果存在重复条目,则查询将不会执行。您可以阅读有关插入忽略的更多信息。将列设置为唯一。然后使用INSERT IGNORE语句,如果存在重复条目,则查询将不会执行。您可以阅读有关INSERT IGNORE的更多信息。如何添加我上面添加的示例中不存在的内容?您是否看过Python中的这个库。SQLAlchemy是专门为处理Python中的关系数据库交互而设计的。您可以为您的案例获得必要的ORMs。如何添加不存在的地方,如我上面添加的示例?您看过Python中的这个库了吗。SQLAlchemy是专门为处理Python中的关系数据库交互而设计的。您可以为您的案例获取必要的ORM在数据库本身的列上添加一个
唯一的约束…!?在数据库本身的列上添加一个UNIQUE
约束…!?