У меня есть таблица, и у меня есть текстовое поле с URL-адресом, я не хочу никаких строк с повторяющимися URL-адресами, но я бы предпочел не делать проверку перед вставкой, нет ли способа сделать текстовое поле уникальный или вы можете предложить другой тип поля для использования?PHP уникальное текстовое поле?
ответ
Если ваше текстовое поле в базе данных установлено на уникальный или первичный ключ или, тем не менее, вы настроили его, то при попытке ввода дубликата не будет выполняться инструкция insert. Таким образом, все, что вам нужно сделать, это правильно обработать неудачную вставку и там у вас есть.
Как указано в другом месте, вы не можете иметь фактическое поле ТЕКСТ, но если вы используете поле varchar, оно выполнимо. Это может быть неважно вообще (может быть, это просто недопонимание), потому что, если вы сохраняете URL-адрес в поле TEXT, вам также нужно беспокоиться о других проблемах.
Вы можете попробовать использовать другое поле, содержащее хэш поля URL.
Правильный способ заключается в том, чтобы проверить, существует ли в таблице url, если да, то вставить, иначе, donot insert.
Как наилучшая практика, использование исключений должно использоваться там, где оно действительно требуется, оно не должно использоваться в качестве замены обычных функций.
Решение в основном добавляет дополнительное поле в базу данных, например field_hash, делает его VARCHAR и Index уникальным.
CREATE TABLE 'info' (
'text' text NOT NULL,
'text_hash' varchar(40) NOT NULL,
PRIMARY KEY ('id'),
UNIQUE KEY 'text_hash' ('text_hash')
);
$text = 'Full Text';
$text_hash = sha1($text);
mysql_query("INSERT INTO info (text, text_hash) VALUES ('$text', '$text_hash')");
- 1. Уникальное текстовое поле в MySQL и php
- 2. уникальное ограничение на большое текстовое поле
- 3. Доступное текстовое поле, чтобы иметь уникальное имя
- 4. PHP уникальное поле идентификатора в url
- 5. Уникальное поле в codeigniter
- 6. PHP проверки текстовое поле, содержащее поле даты
- 7. Выход PHP в текстовое поле
- 8. Connect текстовое поле и PHP
- 9. PHP множественный текстовое поле массив
- 10. php текстовое поле введите событие
- 11. проверить текстовое поле в php
- 12. Текстовое поле Автозаполнение в php
- 13. динамическое текстовое поле в php
- 14. HTML5 текстовое поле/текстовое поле интерактивными текст
- 15. Джанго форма: Уникальное поле
- 16. Elasticsearch Уникальное поле
- 17. Метеор уникальное поле документа?
- 18. Как получить уникальное поле
- 19. Выберите уникальное поле
- 20. Уникальное поле в pymongo
- 21. Hibernate уникальное поле создания
- 22. OrientDB bean уникальное поле
- 23. PostgreSQL уникальное строковое поле
- 24. Поле GravCMS уникальное ID
- 25. уникальное поле django
- 26. Уникальное значение в непервичном поле
- 27. C# Проверка, если текстовое поле == текстовое поле
- 28. Текстовое поле Невозможно изменить текстовое поле
- 29. JQuery вставить выбранное значение в текстовое поле и текстовое поле
- 30. Показать/скрыть текстовое поле
Возможно, я не могу добавить максимальную длину в поле, которое требуется для добавления уникального ключа, любых идей? – zuk1
Измените свое поле из текста на varchar и дайте ему соответствующую длину. – TheTXI
Хорошо, но я был просто взволнован. Я попытался бы вставить URL более 250 в длину, но это маловероятно. Какие еще проблемы вы упомянули, которые поступают из хранения URL-адресов в текстовых полях? – zuk1