小编典典

如何在PostgreSQL 9.5中为“ nt”数据类型设置大小限制

sql

我正在试验使用MySQL的SQL的PostgreSQL,我只希望使用这段有效的SQL代码创建一个表:

CREATE TABLE flat_10
(
  pk_flat_id INT(30) DEFAULT 1,
  rooms      INT(10) UNSIGNED NOT NULL,
  room_label CHAR(1) NOT NULL,

  PRIMARY KEY (flat_id)
);

我得到了错误

ERROR:    syntax error at or near "("
LINE 3:   pk_flat_id integer(30) DEFAULT 1,

我已经在网上进行搜索,但没有找到答案,而且我似乎在PostgreSQL手册中找不到答案。我究竟做错了什么?

我明确地想对可插入“ pk_flat_id”字段中的位数设置限制


阅读 160

收藏
2021-05-05

共1个答案

小编典典

我明确地想对可插入“ pk_flat_id”字段中的位数设置限制

您当前的表定义并 没有 以任何方式征收“大小限”。在MySQL的参数int的数据类型仅是 暗示 对在列的显示宽度的应用 中显示
它。

您可以int(1)毫无问题地将值2147483647存储在中。

如果要限制要存储在整数列中的值,可以使用检查约束:

CREATE TABLE flat_10
(
  pk_flat_id bigint DEFAULT 1,
  rooms      integer NOT NULL,
  room_label CHAR(1) NOT NULL,

  PRIMARY KEY (flat_id), 
  constraint valid_number 
      check (pk_flat_id <= 999999999)
);
2021-05-05