擅长:python、mysql、java
<p>您引用的文档解释了此问题:</p>
<blockquote>
<p>This parameter is only used when issuing CREATE TABLE statements.</p>
</blockquote>
<p>如果最初创建的数据库没有<code>nullable=False</code>(或者以某种其他方式创建的数据库,与SQLAlchemy分开,在该列上没有<code>NOT NULL</code>),那么数据库<em>列</em>就没有该约束信息。此信息引用数据库列,而不是创建/插入的特定实例。</p>
<p>在不重建表的情况下更改SQLAlchemy表的创建,意味着不会反映更改。正如注释中的一个链接所解释的那样,SQLAlchemy没有在该级别执行验证(您需要使用<code>@validates</code>装饰器或其他类似的东西)。</p>