Установить лимит для запроса вставки? - PullRequest
0 голосов
/ 09 июля 2019

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

Я написал что-то вроде:

INSERT INTO 'MyTable' ('ID', 'eMail', 'ISBN') 
VALUES ('333', 'a@d', '222') , ('433','e@r', '223')

, ноПроблема в том, что я понятия не имею, как установить предел для вставки.Я просто знаю, что не могу использовать LIMIT, потому что он работает только с запросом SELECT.

1 Ответ

0 голосов
/ 09 июля 2019

Я не знаю, есть ли какой-нибудь отдельный запрос, который будет обрабатывать limit и insert одновременно или нет?Я бы предпочел посчитать строки по каждому идентификатору пользователя, прежде чем вставлять новые строки для этого пользователя.

Например:

SELECT ID, COUNT(*) as CNT from `MyTable` GROUP BY ID HAVING COUNT(*) < 3 ORDER BY `ID` DESC

Так что приведенный выше запрос вернет только идентификатор-> соответствующее количество строк этого идентификатора, с помощью этой информации вы можете легко отфильтровать, у какого пользователя может быть новая строка в вашей таблице, а какая должна быть отброшена?

ID      CNT
333      2
899      1
443      2

INSERT INTO 'MyTable' ('ID', 'eMail', 'ISBN') VALUES ('333', 'a@d', '222') , ('899','e@r', '223'), ('443','f@r', '224')
...