2024-03-28 21:53:58 发布
网友
我设计了一个具有外键约束的大型数据库,以防止插入违反这些约束的损坏数据。我希望,当我用Python插入数据时,它会跳过每一个条目,其中外键约束失败,这样只会在数据库中插入“真实”的数据。有点像过滤器。但是,只要出现“损坏”条目,脚本就会停止。有没有办法强迫他继续,跳过那些不需要的台词?在
谢谢你的帮助!在
您可以使用INSERT INTO ... SELECT ...进行条件插入。让我们举一个例子:有两个表country和city,并且city中的country_id引用了来自country的相应列。在
INSERT INTO ... SELECT ...
city
country_id
country(country_id,name)
city(city_id,name,country_id)
下面的INSERT语句无条件地插入条目。如果国家中不存在值为:country_id的行,则失败。在
INSERT
:country_id
INSERT INTO city (city_id, name, country_id) VALUES (:city_id, :name, :country_id);
以下语句仅在国家/地区中存在对应行时插入条目。否则,什么都不会发生。在
您应该使用处理程序: http://dev.mysql.com/doc/refman/5.1/en/declare-handler.html
然后选择continue选项
continue
少数处理程序示例:
MySQL Stored Procedure Error Handling
您可以使用
INSERT INTO ... SELECT ...
进行条件插入。让我们举一个例子:有两个表country和city,并且city
中的country_id
引用了来自country的相应列。在country(country_id,name)
city(city_id,name,country_id)
下面的
INSERT
语句无条件地插入条目。如果国家中不存在值为:country_id
的行,则失败。在以下语句仅在国家/地区中存在对应行时插入条目。否则,什么都不会发生。在
^{pr2}$您应该使用处理程序: http://dev.mysql.com/doc/refman/5.1/en/declare-handler.html
然后选择
continue
选项少数处理程序示例:
MySQL Stored Procedure Error Handling
相关问题 更多 >
编程相关推荐