为什么我的 SQL 插入未通过约束检查?

问题描述 投票:0回答:1

我正在将数据插入表中,并且必须插入一个可以是“逾期”、“已返回”或“已借用”的值

    Status string check(Status is "Overdue" OR "Borrowed" OR "Returned") NOT NULL,

我尝试插入

select * from Books;
insert into Books(Book_ID, Book_Name, Author, Genre, Rating, Status)
values("200001", "Harry Potter", "J.K Rowling", "Fantasy", 5, "Returned");

但是后来我收到错误消息 (在数据库“database”上执行 SQL 查询时出错:CHECK 约束失败:状态为“逾期”或“借用”或“已归还”)

它们不一样吗?

sql database sqlite
1个回答
0
投票

这不是

is
运算符的正确用法。我认为您打算使用
in
运算符:

Status IN ("Overdue", "Borrowed", "Returned")
© www.soinside.com 2019 - 2024. All rights reserved.