У меня есть таблица языков, которая содержит столбец «node_id» и «language».
|| *nid* || *language* || || 8 || Chinese || || 8 || Portuguese || || 8 || German |
Я хотел бы вставить в него новые языки, но только в том случае, если для этого конкретного nid не существует подобной записи языка. Итак, согласно примеру выше, добавление nid> 8 и language> Chinese не повлияет.
Как я должен это сделать? Есть ли тип запроса, который будет действовать как таковой, или мне нужно сначала проверить с PHP / MYSQL, прежде чем вставлять строку?
Просто поставьте ограничение UNIQUE на пару столбцов в базе данных MySQL. Любой запрос, пытающийся добавить повторяющуюся строку, не будет выполнен.
Вы можете просто сделать уникальный индекс ключа с двумя из этих столбцов:
CREATE TABLE lang
( nid
INT NOT NULL, language
VARCHAR (45) NOT NULL, UNIQUE INDEX index_lang
( nid
ASC, language
ASC));