0

使用 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 跳过记录并继续完成导入?目前它在遇到错误时停止。谢谢哈利

4

1 回答 1

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)
于 2013-08-07T09:14:51.657 回答