小编mis*_*iso的帖子

当 PostgreSQL 中的 INSERT 语句失败时防止主键增量

我的 PostgreSQL 数据库中有一个简单的表,如下所示:

CREATE TABLE person_type
(
  id serial NOT NULL,
  name character(55) NOT NULL,
  CONSTRAINT person_type_pkey PRIMARY KEY (id),
  CONSTRAINT person_type_name_key UNIQUE (name)
)
Run Code Online (Sandbox Code Playgroud)

如您所见,id会自动递增,并且名称必须是唯一的。每次我运行 INSERT sql 语句时,即使它失败,id 也会增加 1。

我怎样才能防止这种情况?为了每次成功插入一行,主键是相关的

postgresql primary-key auto-increment

5
推荐指数
1
解决办法
5363
查看次数

存储各种测量单位(kg、ml、mm、pl)的浮点值

我有一张如下表:

order_item
------------
serial      | id (PK)
integer     | order_id
????        | quantity
integer     | unit_of_measure_id (PK) --> ml, l, kg, mg, mm, m, etc.
Run Code Online (Sandbox Code Playgroud)

我正在做一个应用程序,我需要存储化学分析中使用的材料量。有时材料的用量很小,如微升,有时则更多,如一两升。

它的numeric数据类型是否足够好?

我读过将值转换为最小度量单位是个好主意。所以如果我有 10 升,我必须传递到 10000000 微升。但是,如果您将来需要使用更低的度量单位怎么办?像皮升?不可避免地,我认为应用程序将不得不使用浮点数。

postgresql database-design floating-point

5
推荐指数
1
解决办法
1677
查看次数