Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy和空列_Python_Database Design_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy和空列

Python SQLAlchemy和空列,python,database-design,sqlalchemy,Python,Database Design,Sqlalchemy,当我尝试使用SQLAlchemy向数据库中插入一条新记录,但我没有填写所有值时,它会尝试将它们作为“无”插入(而不是忽略它们)。然后它抱怨“不能为空”错误。如果我在声明实例时也省略了列,有没有办法让它只从sql查询中省略列?这是一个数据库架构问题,而不是SQLAlchemy问题。如果您的数据库架构有一个不能为NULL的列,则必须在其中放入一些内容(即不是None)。或者更改您的模式以允许在这些列中使用NULL Wikipedia有一篇文章和一篇描述的文章要添加到Ali A的答案中,这意味着您需要

当我尝试使用SQLAlchemy向数据库中插入一条新记录,但我没有填写所有值时,它会尝试将它们作为“无”插入(而不是忽略它们)。然后它抱怨“不能为空”错误。如果我在声明实例时也省略了列,有没有办法让它只从sql查询中省略列?

这是一个数据库架构问题,而不是SQLAlchemy问题。如果您的数据库架构有一个不能为NULL的列,则必须在其中放入一些内容(即不是None)。或者更改您的模式以允许在这些列中使用NULL


Wikipedia有一篇文章和一篇描述

的文章要添加到Ali A的答案中,这意味着您需要在列定义中包含
nullable=True
,以便允许在列中使用NULL。例如:

email_address = Column(String, nullable=True)
,摘自v1.2文档:

nullable–设置为False时,将导致“NOT NULL”短语为空 在为列生成DDL时添加。如果为True,则通常 不生成任何内容(在SQL中默认为“NULL”),但在某些非常复杂的情况下除外 特定后端特定的边缘情况,其中“NULL”可能呈现 明确地默认为True,除非主_键也为True,其中 case默认为False。此参数仅在发出时使用 创建表语句


如果在模式中声明了默认值(但使用
notnull
检查),则可以使用


这更直接地回答了问题同意不同意,我目前的问题与问题完全相同:列定义为
timestamp NOT NULL DEFAULT\u timestamp
。添加的对象未设置此属性,但SQLAlchemy仍尝试插入
NULL
from sqlalchemy.schema import FetchedValue


class Foo(Base):
    date_created = Column(DateTime, server_default=FetchedValue())