Вынудите таблицу иметь только одну строку

Что самый чистый путь состоит в том, чтобы вынудить таблицу SQL позволять этому иметь не больше, чем одну строку?

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

До сих пор я только нашел взломы, включающие столбец уникального ключа, который вынужден иметь определенное значение, например. ALWAYS_0 TINYINT NOT NULL PRIMARY KEY DEFAULT (0) CONSTRAINT CHECK_ALWAYS_0 CHECK (ALWAYS_0 = 0). Я предполагаю, что существует, вероятно, более чистый способ сделать это.

Идеальным решением был бы портативный SQL, но решение, характерное для SQL Server MS или пост-ГРЭС, также будет полезно

6
задан Community 23 May 2017 в 10:32
поделиться

2 ответа

Самым чистым способом (я думаю) был бы триггер ON INSERT , который генерирует исключение (таким образом предотвращая вставку строки). Это также дает клиентскому приложению возможность корректно восстановиться.

4
ответ дан 17 December 2019 в 00:05
поделиться

Используйте Grant для удаления разрешений для всех, кто может вставлять в таблицу после добавления одной строки

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

1
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: