带小数的postgresQL问题

时间:2014-03-18 19:39:46

标签: postgresql decimal

你好,第8行有一个与小数有关的问题。

有什么建议吗?

CREATE TABLE car (
cid         CHAR(8)                     PRIMARY KEY,
reg_no      VARCHAR(9)                  NOT NULL,
colour      VARCHAR(15)                 NOT NULL,
maker       VARCHAR(20)                 NOT NULL,
model       VARCHAR(20)                 NOT NULL,
fuel_type   CHAR(6) CHECK((fuel_type IN ('petrol', 'diesel'), 
eng_size    DECIMAL(2,1)                        NOT NULL,
owner       CHAR(6)                     NOT NULL,

FOREIGN KEY (owner) REFERENCES client (client_no)
                ON DELETE CASCADE   
                                ON UPDATE CASCADE, 
);

2 个答案:

答案 0 :(得分:1)

你的'))'在第8行结束时失踪了,你有一个额外的','在结束之前)。

这是固定版本

        CREATE TABLE car (
cid         CHAR(8)                     PRIMARY KEY,
reg_no      VARCHAR(9)                  NOT NULL,
colour      VARCHAR(15)                 NOT NULL,
maker       VARCHAR(20)                 NOT NULL,
model       VARCHAR(20)                 NOT NULL,
fuel_type   CHAR(6) CHECK((fuel_type IN ('petrol', 'diesel'))), 
eng_size    DECIMAL(20,15)              NOT NULL,
owner       CHAR(6)                     NOT NULL,

FOREIGN KEY (owner) REFERENCES client (client_no)
                ON DELETE CASCADE   
                                ON UPDATE CASCADE 
);

答案 1 :(得分:1)

eng_size字段声明之前的行缺少右括号)

更改
fuel_type   CHAR(6) CHECK((fuel_type IN ('petrol', 'diesel'),

fuel_type   CHAR(6) CHECK(fuel_type IN ('petrol', 'diesel')),

另外,从最后一行删除,

FOREIGN KEY (owner) REFERENCES client (client_no)
                ON DELETE CASCADE ON UPDATE CASCADE

在这里看到一个成功的小提琴

http://sqlfiddle.com/#!15/841fd