仅当文本列不是数字时才添加新行

时间:2014-01-12 12:58:22

标签: sql postgresql

我开始学习sql,现在我正在Postgresql编写项目。例如,我有这样的表格:

CREATE TABLE employee
(
  id_employee serial NOT NULL,
  name character varying,
  surname character varying,
  salary numeric,
  position character varying,
  login character varying,
  password character varying,
  CONSTRAINT employee_pkey PRIMARY KEY (id_employee )
)

我希望只有在列名和姓不包含数字时才允许插入新行。 有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

首先,在弄乱名字之前,请阅读this article about names。请不要在名称上添加约束。理想情况下,甚至不要将“姓氏”和“名字”分开。

如果必须这样做,您可能需要基于正则表达式的约束。

CONSTRAINT name_no_numeric_chars
  CHECK (name !~ '[[:digit:]]');