database - postgresql 中带有字母(非数字)的列的数据类型

标签 database postgresql database-schema

哪种数据类型最适合在 postgresql 中声明只能包含字母而不能包含数字的表中的列?

最佳答案

最好的办法是在 varchar 上创建一个带有检查约束的域。

create domain textonly text check (value not similar to '%[0-9]%');

然后您可以将其用作防止数字的数据类型。

pagetest=# create table dtest (test textonly);
CREATE TABLE
pagetest=# insert into dtest values ('abc');
INSERT 0 1
pagetest=# insert into dtest values ('ab2c');
ERROR:  value for domain textonly violates check constraint "textonly_check"
pagetest=# 

关于database - postgresql 中带有字母(非数字)的列的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38968073/

相关文章:

database - 主键理论和 I/O 效率

php - IN FIND_IN_SET 之间的 MySql 查询

mysql - 拥有可以访问的存档的最佳方式

database - Postgres 通过以下方式获得组中的第一项

ruby-on-rails - 大表上的 Rails 计算

postgresql - PostgreSQL 如何解释这两个 join 语句?

mysql - 使用 MySQL Workbench 从现有模式/模型创建数据库

mysql - 保存历史可编辑数据RDBMS

sql - 两个表之间最近点的唯一分配

database - 行建模和 EAV 之间的区别