2

我正在尝试将大量数据导入现有数据库。有时,这个其他数据库中的字符串字段包含的字符串比我要导入它们的字段大。我对此没意见,我希望系统只是静默截断,但我收到一个警告,然后也会停止执行。

由于这是一个实时数据库,我通过“manage.py shell”运行我的代码,当我调用导入例程时,它在遇到的第一个字符串字段太长后停止。奇怪的是,它确实将它插入到我所期望的截断的数据库中,但随后退出了 for 循环。

谢谢!

这是错误输出:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/blah/blah/update.py", line 41, in updateCommunities
    community.save()
  File "/usr/lib/pymodules/python2.6/django/db/models/base.py", line 434, in save
    self.save_base(using=using, force_insert=force_insert, force_update=force_update)
  File "/usr/lib/pymodules/python2.6/django/db/models/base.py", line 527, in save_base
    result = manager._insert(values, return_id=update_pk, using=using)
  File "/usr/lib/pymodules/python2.6/django/db/models/manager.py", line 195, in _insert
    return insert_query(self.model, values, **kwargs)
  File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 1479, in insert_query
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/lib/pymodules/python2.6/django/db/models/sql/compiler.py", line 783, in execute_sql
    cursor = super(SQLInsertCompiler, self).execute_sql(None)
  File "/usr/lib/pymodules/python2.6/django/db/models/sql/compiler.py", line 727, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib/pymodules/python2.6/django/db/backends/util.py", line 15, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/pymodules/python2.6/django/db/backends/mysql/base.py", line 86, in execute
    return self.cursor.execute(query, args)
  File "/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 168, in execute
    if not self._defer_warnings: self._warning_check()
  File "/usr/lib/pymodules/python2.6/MySQLdb/cursors.py", line 82, in _warning_check
    warn(w[-1], self.Warning, 3)
Warning: Data truncated for column 'community_name' at row 1
4

0 回答 0