У меня есть таблица, которая всегда имеет 0 или 1 ряд. Я хочу написать скрипт, который будет вставлять строку, если она пуста, и ничего не делать, если есть строка. Я попытался это:SQL: Как я могу вставить строку, если таблица пуста, иначе ничего не делать?
SELECT * CASE WHEN (SELECT COUNT(*) FROM table < 0)
THEN (INSERT INTO table (a, b, c, d) VALUES ('a', 'b', 'c', 'd'))
END CASE
FROM table;
Но я получаю:
FROM ключевое слово не найдено, где ожидалось.
Это похоже на то, что должно быть довольно просто, что я делаю неправильно?
** NOTE ** Если у вас нет других ограничений, установленных до. Два отдельных сеанса могут запрашивать вашу таблицу, находить ее пустой и вставлять строку, каждая из которых приводит к двум строкам. Чтобы это не происходило, настройте первичный ключ в своей таблице и назначьте контрольное ограничение для этого ПК так, чтобы оно могло иметь только одно значение: 'create table t (ограничение количества PK t_pk ограничение первичного ключа T_CK1 check (PK = 1) ...) ' –