>source

내가 테이블이 있다고 가정 main_table 열 포함 :

id (AUTO_INCREMENT), first (int), value1 (double with default=0), value2 (double)

코드 사용

engine = sqlalchemy.create_engine(db_connect)
session = Session(engine)
base = automap_base()
base.prepare(engine, reflect=True)
table = getattr(base.classes, fact_table)
kwargs = {'first': 200016, 'value2': 1.0}
entry = table(**kwargs)
session.add(entry)
session.commit()

오류가 발생했습니다 {"error": 500, "message": "(pymysql.err.IntegrityError) (1048, \"Column 'value1' cannot be null\")

그것은 때 발생합니다 value1 받아들이지 않는다 null 값.

나는 이것을 무시하고 모든 value1이 의무적이지 않은 후에 항목을 추가하고 싶습니다 (기본값 있음).

SHOW CREATE TABLE main_table; :

CREATE TABLE `main_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first` int(11) NOT NULL,
  `value1` double(22,6) NOT NULL DEFAULT 0.000000,
  `value2` double(22,6) NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=200000 DEFAULT CHARSET=utf8


  • 답변 # 1

    이것은 SQLAlchemy 1.3.20 (및 이전) + MariaDB의 문제입니다. 여기서 해결됨 :

    https://github.com/sqlalchemy/sqlalchemy/issues/5744

관련 자료

  • 이전 sql - 실제 값 대신 NULL을 반환하는 JSON_VALUE 값
  • 다음 ios - SwiftUI의 모든 탭보기에서 상태를 공유하는 방법