Как указывали другие ответы, явный NULL может быть вставлен путем передачи None
или в случае SQLAlchemy a null()
в качестве значения. На самом деле PEP-249 «DB-API v2.0» четко указывает это в «Объекты и конструкторы объектов» :
Значения SQL NULL представлены Python
blockquote>None
singleton на входе и выходе.В качестве третьего варианта можно просто опустить столбец, если он является нулевым:
t = Table('t', metadata, Column('a', Integer), Column('b', Integer)) stmt = t.insert().values(a=1) engine.execute(stmt)
будет эффективно вставлять новый row
(1, NULL)
в таблицеt
, поскольку для столбцаb
значение не указано. То же самое относится к сопоставленным классам, которые, я полагаю, исходный вопрос фактически используется (из-заself
):class T(Base): __tablename__ = 't' id = Column(Integer, primary_key=True) a = Column(Integer) b = Column(Integer) session.add(T(a=1)) session.commit()
снова эффективно приводит к вставке
(default, 1, NULL)
.
В FileZilla 2.2.32 пойдите Редактирование > Настройки > настройки Передачи файлов > ASCII/двоичный файл. Установите его на всегда двоичный файл: это должно добиться цели.
В FileZilla 3.5.0 установка находится в Редактировании> Настройки> Передачи> Типы файлов> тип передачи По умолчанию> Двоичный файл.
Какой режим передачи FTP Вы используете (двоичный файл или ASCII?)? Я не на 100% уверен, но я думаю, вызываете ли Вы режим двоичного счета, у Вас не должно быть этой проблемы.