Postgres不使用默认浮点值

时间:2015-09-09 09:39:51

标签: postgresql

我的表格包含以下列:

priority double precision DEFAULT 0.5::double precision, 
created_at timestamp without time zone DEFAULT now(),

但是对于刚刚插入的记录,该值为null:

enter image description here

为什么它不起作用?

更新 我已将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   栏"优先级"违反非空约束

1 个答案:

答案 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