Ограничение количества строк - PullRequest
1 голос
/ 05 марта 2010

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

Ответы [ 4 ]

1 голос
/ 05 марта 2010

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

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

0 голосов
/ 06 марта 2010

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

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

0 голосов
/ 05 марта 2010

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

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

0 голосов
/ 05 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...