我正在尝试使用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"字段
答案 0 :(得分:8)
我明确要设置一个限制,可插入“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)
);
答案 1 :(得分:2)