Mysql - проверка таблицы перед вставкой в ​​другую таблицу - PullRequest
0 голосов
/ 24 февраля 2012

Я хочу знать, что администратор, пытающийся добавить пользователя в коллекцию, действительно создал этого пользователя. Объяснение переменных:

$ userid = идентификатор пользователя, который будет добавлен в коллекцию

$ ownerid = ИД пользователя admin

$ collectionid = collectionid, к которому должен быть добавлен пользователь.

IF ($ userid in (ВЫБЕРИТЕ id ОТ 'пользователей' ГДЕ 'owner' = $ ownerid)) ТО ВСТАВЬТЕ В 'collectionusers' ('collectionid', 'userid') VALUES ($ collectionid, $ userid);

Если я выполню это, это будет выглядеть так

ЕСЛИ (8 дюймов (ВЫБЕРИТЕ ИД ИЗ «пользователей», ГДЕ владелец = 1)) ТОГДА ВСТАВЬТЕ В «Коллекционеров» ('collectionid', 'userid') ЗНАЧЕНИЯ (3, 8);

Я смотрел на:

12.6.5.2. Синтаксис IF

11.3.2. Функции сравнения и операторы - IN ()

Я не могу понять, что не так с этим синтаксисом.

1 Ответ

2 голосов
/ 24 февраля 2012

Вы можете сделать это с помощью одного запроса. Например:

INSERT INTO collectionusers(collectionid, userid)
  SELECT 3, 8 FROM users WHERE owner = 1 AND id = 8 LIMIT 1

Также вы можете написать хранимую процедуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...