Что самый чистый путь состоит в том, чтобы вынудить таблицу SQL позволять этому иметь не больше, чем одну строку?
Этот связанный вопрос обсуждает, почему такая таблица могла бы существовать, но не, как ограничение должно быть реализовано.
До сих пор я только нашел взломы, включающие столбец уникального ключа, который вынужден иметь определенное значение, например. ALWAYS_0 TINYINT NOT NULL PRIMARY KEY DEFAULT (0) CONSTRAINT CHECK_ALWAYS_0 CHECK (ALWAYS_0 = 0)
. Я предполагаю, что существует, вероятно, более чистый способ сделать это.
Идеальным решением был бы портативный SQL, но решение, характерное для SQL Server MS или пост-ГРЭС, также будет полезно
Самым чистым способом (я думаю) был бы триггер ON INSERT
, который генерирует исключение (таким образом предотвращая вставку строки). Это также дает клиентскому приложению возможность корректно восстановиться.
Используйте Grant для удаления разрешений для всех, кто может вставлять в таблицу после добавления одной строки
Ваша база данных сможет вставлять, но база данных должна выполнять только изменения схемы, которые проверяются, поэтому на практике это не должно быть проблемой