0
エンティティをキャッシュするためにデータベースが使用されています。テーブルは次のようになります。LRUキャッシュのSQL/HQL DELETEステートメント?
| Persons | Addresses
----------------- --------------
PK| id <--| PK| id
| last_accessed |--- FK| persons_id
| [some] | [more]
| [other] | [address]
| [data] | [stuff]
人はゼロ以上のアドレスを持っています。これらのテーブルは、Hibernateを使用するJavaアプリケーションによってアクセスされます。また、JDBC over SQLを使用して同じアプリケーションから直接アクセスされます。
Persons
テーブルのサイズを固定値(たとえば、50,000レコード)に調整する必要があります。これを行うには、私は最も古いレコード(last_accessed
に基づいて)を削除する必要があります。
これは簡単に行うことができるANSI-SQLまたはHQLクエリですか?純粋なANSI-SQLソリューションは理想的です。
- 私たちはデータベースにとらわれないままにしようとしています。我々は、カスケードは仕事に削除休止状態を取得するために、アプリケーションのメモリにオブジェクトをロードすることを避けるためにしたい
- ...
aha!私はROW_NUMBERがANSI SQL標準の一部であることに気づいていませんでした。 TIL ... –