擅长:python、mysql、java
<p>书中描述的基本类型代码由<a href="http://www.python.org/dev/peps/pep-0249/" rel="nofollow">DB-API specification</a>定义。在</p>
<blockquote>
<p>The type_code must compare equal to one of Type Objects defined below.</p>
</blockquote>
<p>这里的诀窍在于,可以有多个不同类型的代码,这些代码比较起来都等于同一个类型对象。在</p>
<pre><code>>>> MySQLdb.constants.FIELD_TYPE.TIMESTAMP
7
>>> MySQLdb.constants.FIELD_TYPE.DATETIME
12
>>> MySQLdb.constants.FIELD_TYPE.TIMESTAMP==MySQLdb.DATETIME
True
>>> MySQLdb.constants.FIELD_TYPE.DATETIME==MySQLdb.DATETIME
True
>>> MySQLdb.DATETIME
DBAPISet([12, 7])
</code></pre>
<p>(在DB-API规范中关于DBAPITypeObject的说明中概述了这一魔力是如何实现的。一个更传统的接口可能已经用子类实现了这一点…)</p>
<p>这使得MySQLdb能够提供关于该列的更丰富的信息,而不仅仅是它是否是日期和时间类型,同时还允许对字符串和数字进行简单的测试。在</p>
<p>当然,如果你开始比较MySQLdb.constants.FIELD_类型直接键入依赖于MySQLdb功能但不会移植到其他数据库的类型。在</p>