我的表格包含以下列:
priority double precision DEFAULT 0.5::double precision,
created_at timestamp without time zone DEFAULT now(),
但是对于刚刚插入的记录,该值为null:
为什么它不起作用?
更新 我已将flask-sqlalchemy行更新为:
priority = db.Column(db.Float, server_default=u'0.5', nullable=False)
,表格显示:
优先级双精度NOT NULL DEFAULT 0.5 ::双精度,
但现在它给出了错误:
sqlalchemy.exc.IntegrityError:(psycopg2.IntegrityError)null值in 栏"优先级"违反非空约束
答案 0 :(得分:0)
在数据库中向列添加NOT NULL
约束。因此,当客户端尝试插入空值时,您会注意到:
priority double precision DEFAULT 0.5::double precision NOT NULL,
在客户端中,在执行insert时使用关键字DEFAULT
而不是null:
INSERT INTO your_table (priority, created) VALUES (DEFAULT, DEFAULT);
有关详细信息,请参阅官方文档:http://www.postgresql.org/docs/9.3/static/sql-insert.html