2010-03-05 4 views
1

Я хочу ограничить максимально возможные строки, которые можно вставить в таблицу. Возможно ли иметь такое ограничение в базе данных?Ограничение количества строк

+2

Во-первых, какую систему баз данных вы используете? –

+0

Вы хотите ограничить размер таблицы? (количество строк) или вы хотите ограничить количество вставленных строк в любой момент времени? –

ответ

0

В какой базе данных у вас есть? Если это ДОПОЛНИТЕЛЬНЫЙ триггер, вы можете это сделать. Кроме того, некоторые базы данных предлагают расширяемость.

Oracle и MySQL поддерживают их точно, не уверены в SQL Server. В триггере вы можете вызвать SELECT COUNT (*) FROM TABLE и затем отменить, если предел достигнут.

1

В зависимости от вашей системы БД вы можете использовать триггеры для этого. Он мог подсчитывать количество записей на каждой вставке (или значительно лучше, кэшировать ее при вставке и удалении) и просто отклонять ее, когда она достигает определенного числа.

Но для меня это звучит как очень странное требование. Разумеется, это было бы разумно контр-интуитивным (для меня, во всяком случае). Возможно, вы захотите «архивировать», когда достигнут определенный номер, или выполнить сложную задачу. Но это было бы лучше (значительно лучше) сделано в качестве фоновой задачи (ИМХО).

0

Ограничения SQL обычно ограничивают тип вставки или дублирования, но не сумма вводимой информации.

Вы должны иметь возможность ограничить вставки от клиента, выполняющего вставку. На стороне SQL вы можете использовать триггер для предотвращения вставки, если количество записей превышает заданную величину.

0

Если это бизнес-правило, которое может меняться со временем, я бы не поместил код в базу данных вообще, а в слой выше, который его вызывает.

В этот момент вы проверите свой бизнес-уровень, чтобы проверить, соблюдено ли правило перед вставкой.

Смежные вопросы