Ограничить вставки до 6 строк на идентификатор - PullRequest
0 голосов
/ 26 января 2019

Я изучаю Hibernate, создающий базовое консольное приложение с использованием Oracle в качестве серверной части. У меня есть таблица, в которой, если студент вводит 7-ю запись, ему не разрешается делать это. Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Вы также можете использовать простой триггер (при условии, что в вашей таблице есть столбец идентификатора):

create or replace trigger trg_limit_row
after insert on your_table
for each row
begin
  if :new.id >5 then -- assume that you have id in range (0-5) -> 6 rows
    execute immediate 'delete from your_table t where t.id = ' 
    || ':' || 'new_id';
  end if;
end;
/
0 голосов
/ 26 января 2019

Кроме триггеров, вы можете создать материализованное представление, а затем проверить ограничение на таблицу.

create materialized view log on test_table;

create materialized view mv_test_table
 refresh FAST on COMMIT
 ENABLE QUERY REWRITE 

as
  select id, count(*) cnts
    from test_table
   group by id;

alter table test_table
  add constraint check_userid
  check (cnts< 7);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...