如果在PostgreSQL中有以下表格:
如何正确处理sqlalchemy生成的“height_in”列?
思路是仅使用sqlalchemy插入“id”,“email”和“height_cm”列,但是指定“height_in”列时,sqlalchemy会自动在将行插入表时将NULL插入“height_in”列,因此postgres会出现错误,因为不允许这样做。
CREATE TABLE user (
id integer PRIMARY KEY,
email text UNIQUE,
height_cm numeric,
height_in numeric GENERATED ALWAYS AS (height_cm / 2.54) STORED
);
以下是sqlalchemy模型:
from sqlalchemy.ext.declarative import declarative_base
class User(declarative_base()):
__tablename__ = "user"
id = Column(Integer, primary_key=True)
email = Column(String, unique=True, index=True, nullable=False)
height_cm = Column(Numeric)
height_in = Column(Numeric)
如何正确处理sqlalchemy生成的“height_in”列?
思路是仅使用sqlalchemy插入“id”,“email”和“height_cm”列,但是指定“height_in”列时,sqlalchemy会自动在将行插入表时将NULL插入“height_in”列,因此postgres会出现错误,因为不允许这样做。
GENERATED ALWAYS AS ... STORED
语法似乎是在 Postgresql v12 中引入的。 - undefined