У меня есть таблица с упражнениями внутри и для каждого упражнения некоторые иллюстрации в другой таблице. Я хотел бы вставить иллюстрации и сохранить его с атрибутом «position». Итак, когда я добавляю иллюстрацию, атрибут 'position' равен количеству иллюстраций для данного упражнения (поскольку позиция начинается с 0).INSERT INTO с подзапросом SELECT COUNT, возвращающим нуль
Так что я пытался что-то вроде этого:
INSERT INTO illustrations (path, date_creation, id_exercise, position)
VALUES (
"2789c0bdda6981fadd87c30af74dfc5d.jpg",
"1384104485",
"4",
(SELECT COUNT(I.id)
FROM illustrations I
WHERE I.id_exercise = 4
GROUP BY I.id_exercise
)
)
Этот запрос работает нормально, но только если у меня есть уже, по крайней мере одну иллюстрацию для физических упражнений. В противном случае суб-запрос возвращает значение null, и я получаю эту ошибку: позиция «Столбец» не может быть нулевой, что логично. Обычно я бы поставил нуль, если подзапрос select возвращает null. Я пытался использовать ISNULL(), но я не нашел правильного синтаксиса. Любое предложение ?
Это работает, если есть две вставки точно в одно и то же время? – xms