Python:MySQL批量插入,外键约束失败时跳过条目

2024-03-28 21:53:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我设计了一个具有外键约束的大型数据库,以防止插入违反这些约束的损坏数据。我希望,当我用Python插入数据时,它会跳过每一个条目,其中外键约束失败,这样只会在数据库中插入“真实”的数据。有点像过滤器。但是,只要出现“损坏”条目,脚本就会停止。有没有办法强迫他继续,跳过那些不需要的台词?在

谢谢你的帮助!在


Tags: 数据脚本数据库过滤器条目外键办法台词
2条回答

您可以使用INSERT INTO ... SELECT ...进行条件插入。让我们举一个例子:有两个表countrycity,并且city中的country_id引用了来自country的相应列。在

  • country(country_id,name)
  • city(city_id,name,country_id)

下面的INSERT语句无条件地插入条目。如果国家中不存在值为:country_id的行,则失败。在

INSERT INTO city (city_id, name, country_id)
          VALUES (:city_id, :name, :country_id);

以下语句仅在国家/地区中存在对应行时插入条目。否则,什么都不会发生。在

^{pr2}$

您应该使用处理程序: http://dev.mysql.com/doc/refman/5.1/en/declare-handler.html

然后选择continue选项

少数处理程序示例:

MySQL Stored Procedure Error Handling

相关问题 更多 >