使用Py2.6,FreeTDS从MSSQL数据库导入数据并放入MySQL。 我有一张表,我认为需要更改一个唯一的密钥。它不应该是唯一的,也不是id键。
board_pat | CREATE TABLE `board_pat` (
`id` int(11) NOT NULL auto_increment,
`first_name` varchar(100) NOT NULL,
`middle_name` varchar(100) default NULL,
`last_name` varchar(100) NOT NULL,
`mrn` varchar(9) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `mrn` (`mrn`)
) ENGINE=MyISAM AUTO_INCREMENT=6896 DEFAULT CHARSET=latin1 |
没有其他表引用此密钥,我相信它会导致此错误:
django.db.utils.IntegrityError: (1062, "Duplicate entry '001918271' for key 2")
这会停止通过重复的记录导入记录。奇怪的是,可以手动输入导致错误的记录而没有错误。并且,在此字段中输入其他记录并重复,并且不会出现任何问题。快把我逼疯了。
如果我删除了唯一属性,这会对django产生什么影响?如果更改表是个坏主意,我如何让python跳过记录并继续完成导入?目前它在遇到错误时停止。 谢谢 哈利
答案 0 :(得分:1)
使用错误句柄机制尝试并插入数据: -
from django.db.utils import DatabaseError,IntegrityError
然后执行类似的操作以防止python脚本停止: -
try:
#write code to execute query here
except IntegrityError:
#write code to handle exception here(example creating a log)