У меня есть SQL-таблица с последними руками, полученными игроком в карточной игре. Стрелка представлена целым числом (32 бита == 32 карты):
create table pref_hand (
id varchar(32) references pref_users,
hand integer not NULL check (hand > 0),
stamp timestamp default current_timestamp
);
Поскольку игроки играют постоянно, и эти данные не важны (просто уловка, отображаемая на страницах профиля игрока), и я не хочу, чтобы моя база данных росла слишком быстро, я хотел бы сохранить только 10 записей на каждого игрока. Поэтому я пытаюсь объявить эту процедуру PL / PgSQL:
create or replace function pref_update_game(_id varchar,
_hand integer) returns void as $BODY$
begin
delete from pref_hand offset 10 where id=_id order by stamp;
insert into pref_hand (id, hand) values (_id, _hand);
end;
$BODY$ language plpgsql;
но, к сожалению, это не с:
ERROR: syntax error at or near "offset"
потому что delete не поддерживает смещение. Кто-нибудь, пожалуйста, есть идея получше?