我正在试验使用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”字段中的位数设置限制
您当前的表定义并 没有 以任何方式征收“大小限”。在MySQL的参数int的数据类型仅是 暗示 对在列的显示宽度的应用 中显示 它。
int
您可以int(1)毫无问题地将值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) );