[英]How can I set a size limit for an "int" datatype in PostgreSQL 9.5
我正在试验来自使用 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”字段的位数设置限制
我明确想对可以插入“pk_flat_id”字段的位数设置限制
您当前的表定义不以任何方式征收“大小限”。 在MySQL的参数int
数据类型仅用于上显示时,它的列的显示宽度的应用程序的提示。
您可以将值 2147483647 存储在int(1)
而不会出现任何问题。
如果要限制要存储在整数列中的值,可以使用检查约束:
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)
);
将整数更改为数字完全有效! CREATE TABLE flat_10 ( pk_flat_id bigint DEFAULT 1, 房间数字非空, 房间标签 CHAR(1) 非空, );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.