【问题标题】:PostgreSQL: How to make values obligatory in INSERT querys?PostgreSQL:如何在 INSERT 查询中强制指定值?
【发布时间】:2022-01-16 07:58:13
【问题描述】:

我正在尝试使用 Postgresql 创建一个表,其中需要 name 的值。这意味着,如果我打算创建一个INSERT,我有义务填写name 的值。

我正在尝试这样创建:

CREATE TABLE person (
  id SERIAL,
  name VARCHAR(64),
  height REAL,
  PRIMARY KEY(id)
)

我不知道SQL中是否有“REQUIRED”,但在我的研究中我仍然没有找到它。

【问题讨论】:

  • id SERIAL NOT NULL
  • 取名NOT NULL。一般来说,明确每一列是NULL 还是NOT NULL,而不是将其保留为默认值,这是一个很好的策略。
  • 非常感谢,原来如此。
  • 如果您需要自定义验证规则,您可以将NOT NULL 约束与CHECK 约束结合起来。例如,如果您需要所有至少三个字符的大写字母,您可以这样做:NOT NULL CHECK (length(name) >= 3 and name = upper(name)).
  • 非常感谢您,Impaler 先生,非常感谢 :)

标签: sql postgresql constraints


【解决方案1】:

正如 Serg 和 Jeroen Mostert 在 cmets 中指出的那样,我只需要做到 NOT NULL,所以就这样了:

CREATE TABLE person (
  id SERIAL NOT NULL,
  name VARCHAR(64) NOT NULL,
  height REAL NOT NULL,
  PRIMARY KEY(id)
)

【讨论】:

  • 附注:Don't use serial
  • 嗨马先生,感谢旁注。你能告诉我为什么我不应该使用 SERIAL 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
相关资源
最近更新 更多