Вставьте, если не существует php - PullRequest
0 голосов
/ 11 августа 2011

У меня есть код

mysql_query("INSERT INTO authors (author) VALUES ('$rec_fic_author') WHERE NOT EXISTS (SELECT * FROM authors WHERE author='$rec_fic_author')") or die("cannot insert author");

Где авторы - таблица, содержащая authorID (pk) и автора $ rec_fic_author - это переменная _POST

Я пытаюсь сделать так, чтобы, когда человек добавляет автора, код проверяет базу данных на наличие любого человека с таким же именем (в колонке автора). Если нет, то добавьте запись У меня есть автор TEXT, и по какой-то причине я не могу сделать его уникальным в phpMyAdmin. Я изучил REPLACE и INSERT. ON DUPLICATE KEY UPDATE, но, насколько я понимаю, им обоим нужно, чтобы рассматриваемое значение было уникальным значением / PK. Это не тот случай.

Помощь

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Я бы посоветовал вам работать с PK или с Великобританией (как предложил wonk0), тогда вы можете использовать оператор INSERT с предложением INGNORE.

ВСТАВИТЬ Синтаксис

0 голосов
/ 11 августа 2011

Это хороший запрос, и NOT EXISTS обычно довольно быстрый, если у вас хорошие индексы. Но мне интересно, почему это не работает!

Я думаю, что это может быть полезно для вашей проблемы ... ССЫЛКА , проверьте.

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