Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何避免重复输入数据库?_Python_Mysql - Fatal编程技术网

Python 如何避免重复输入数据库?

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) "

我想筛选数据库插入以避免重复,这样它每1个
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
约束…!?