我正在设置有关在PostgreSQL中借书的新表。 这本书不能借用超过56天 但我没有正确的表,因为我的检查日期不正确。 这是我的代码:
Create table loaning(
Signature varchar PRIMARY KEY ,
loanDate date DEFAULT CURRENT_TIMESTAMP,
returnDate date default CURRENT_TIMESTAMP + interval '28 day'
check((date loanDate + integer '56') < returnDate),
);
答案 0 :(得分:0)
我期望这样的语法:
create table loaning (
Signature varchar PRIMARY KEY ,
loanDate date DEFAULT CURRENT_DATE,
returnDate date default CURRENT_DATE + interval '28 day'
check ((loanDate + interval '56 day') < returnDate),
);
您在returnDate
上获得了正确的间隔表达式,但在check
约束中却没有。另外,没有理由将date
转换为date
。
我建议主键是一个串行列,所以我真的建议这样:
create table loaning (
loaningId serial primary key,
signature varchar(255),
loanDate date DEFAULT CURRENT_DATE,
returnDate date default CURRENT_DATE + interval '28 day'
check ((loanDate + interval '56 day') < returnDate),
);
我不知道signature
是什么。但也许它甚至不是唯一的。