Intereting Posts
Joomla 1.6 Внешняя проблема взаимодействия с PHP Преимущества использования конструктора? Вход в Facebook с использованием OAuth 2.0 Есть ли у кого-нибудь рекомендации для хорошей (и легкой!) Библиотеки почтовых программ PHP? возвращать несколько данных ответа в одном ответе json синтаксический анализ php foreach stripos возвращает false, когда используются специальные символы Как установить ffmpeg для PHP Уточнение результатов поиска на основе фильтров Методы мгновенного обмена мгновенными сообщениями PHP Насколько эффективна техника honeypot против спама? Как загрузить путь и имя изображения в базу данных – Codeigniter Как прекратить отправку сообщений в mysql, если база данных содержит определенный идентификатор? Отображение значений пользовательских полей продукта в заказе после обработки Как разрешить пользователям с необходимым разрешением загружать файл через php?

Вставить в таблицу только в том случае, если два отношения столбцов не дублируются

У меня есть таблица языков, которая содержит столбец «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));