为什么我在“。”或附近会出现语法错误?
CREATE TABLE myschema.products (
product_no SERIAL PRIMARY KEY,
date date,
group_number INTEGER,
CHECK (myschema.products >1 AND myschema.products <1001)
);
CREATE TABLE myschema.orders (
order_id SERIAL PRIMARY KEY,
name varchar,
schedule integer[][]
);
CREATE TABLE myschema.tabletime (
id SERIAL,
products INTEGER,
orders INTEGER,
CONSTRAINT pkey PRIMARY KEY (id),
CONSTRAINT integrity CHECK (products IS NOT NULL
AND orders IS NOT NULL),
CONSTRAINT products_exists FOREIGN KEY(products)
REFERENCES myschema.products(product_no),
CONSTRAINT orders_exists FOREIGN KEY(orders)
REFERENCES myschema.orders(order_id)
);
答案 0 :(得分:0)
错误出现在以下行:
CHECK (myschema.products >1 AND myschema.products <1001)
您不能在支票内使用关系的名称,只能使用列的名称。 manual说:
目前,CHECK表达式不能包含子查询,也不能引用当前行的列以外的变量。