在 PostgreSQL 8.4.13 为什么会出现语法错误
ERROR: syntax error at or near "on"
LINE: ... references balkan_users(id) check (id <> author) on delete ...
对于以下 2 个语句?
create table balkan_users (
id varchar(32) primary key,
first_name varchar(64) not null,
last_name varchar(64),
female boolean,
avatar varchar(128),
city varchar(64),
mobile varchar(64),
login timestamp default current_timestamp,
logout timestamp,
last_ip inet,
vip timestamp,
mail varchar(256),
green integer,
red integer,
medals integer not null default 0
);
create table balkan_rep (
rep_id serial,
id varchar(32) references balkan_users(id) check (id <> author) on delete cascade,
author varchar(32) references balkan_users(id) on delete cascade,
author_ip inet,
nice boolean,
about varchar(256),
stamp timestamp default current_timestamp,
primary key(id, author);
);
我也准备了an SQLFiddle演示我的问题。
最佳答案
错误:“on”处或附近的语法错误:
在删除级联
之后移动检查
id varchar(32) references balkan_users(id) on delete cascade check (id <> author),
错误:输入末尾的语法错误:
去掉最后一列的分号 primary key(id, author);
关于sql - "on"处或附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638774/