행을 추가하고 테이블에서 한 행을 삭제하려고 할 때 문제가 있습니다. 10 개 이상스칼라 SQLite DELETE에 대한 잘못된 쿼리
가있는 경우 가장 오래된을 제거하여이 데이터베이스에 10 개 최신 항목을 저장하도록되어
def addItem(item:Item)={
val query = items.filter(_.name === name)
items += (item.name,item.timestamp)
if(query.list.length > 10)
{
query.sortBy(timestamp).take(1).delete
}
}
하지만
SlickException : Invalid query for DELETE statement: A single source table is required, found List((s2,Comprehension))
를 말하는 오류가 발생합니다 : 내가 지금 가지고있는 것은
데이터베이스에 다른 테이블이 있지만이 테이블과 관련이 없어야하며 두 테이블 간의 관계조차 없습니다.
잘못된 정보가 있습니까? 또는 DB에 마지막 10 개의 값만 저장하는 다른 방법이 있습니다. 타임 스탬프는 java.sql.timestamp이고 나는 스칼라 라이브러리를 사용하여 SQLite를 scala 용으로 사용하고 있습니다. 또한 Item 클래스는 문자열과 타임 스탬프 만 보유하고 있습니다.
감사합니다. 어떤 도움을 주셔서 감사합니다!
정확하게 기억하면 삭제하고 잘 섞어서 사용하지 마십시오 – cvogt
아이디어를 취하지 않고 첫 번째 요소를 선택하는 방법은? –
SQL이이를 지원합니까? DELETE ... LIMIT ...? 슬릭은 SQL이 할 수없는 것을 할 수 없다. : /. – cvogt