Я не знаю, есть ли какой-нибудь отдельный запрос, который будет обрабатывать 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')