sql - "on"处或附近的语法错误

标签 sql postgresql postgresql-8.4

在 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 Fiddle

关于sql - "on"处或附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17638774/

相关文章:

php - 错误 "cannot insert multiple commands into a prepared statement"

sql - 在插入表/PostgreSQL 之前更改值

sql - 什么是正确的 SQL 语句来实现以下结果

PostgreSQL,从表的行中求和数据?

python - 当 INSERT 不返回任何行时,SQLAlchemy 会引发 TypeError 吗?

postgresql - 在 postgres 中展平 JSONB 数组

Postgresql 8.4更新plpgsql函数查询语法错误

sql - 您可以/如何在不破坏 RI 的情况下添加引用圈?

SQL:在 LIKE 之前选择等于

sql - 为什么 Redshift 不需要物化 View 或索引?