Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать, чтобы сочитание значений полей было уникальным?
 
 автор: Temnovit   (07.06.2007 в 11:52)   письмо автору
 
 

Есть текстовые поля name, surname и pass_code
Нужно, чтобы в базе не было одинаковых сочитаний этих полей.
Одинаковые name, могут быть, surname и pass_code тоже.
Но двух записей с идентичными значениями всех трех полей быть не должно.

Если в базе есть
Ivan Ivanov 22,
то второго Ivan Ivanov 22, быть не должно, хотя может быть Ivan Ivanov 23, Pert Ivanmov 22 и т.д.

Как такое сделать? Заранее спасибо за ответ.

   
 
 автор: Trianon   (07.06.2007 в 12:08)   письмо автору
 
   для: Temnovit   (07.06.2007 в 11:52)
 

назначить на эти три поля объединенный уникальный индекс.
ALTER TABLE `tab` 
  ADD UNIQUE `fullname` 
  ( 
    `name` ( 10 ) , 
    `surrname` ( 10 ) , 
    `pass_code` ( 10 ) 
  )


Здесь индекс fullname построен по первым десяти символам всех трех полей.
Если поля имеют другие длины - нужно скорректировать оператор.

   
 
 автор: Temnovit   (07.06.2007 в 13:38)   письмо автору
 
   для: Trianon   (07.06.2007 в 12:08)
 

А если включать туда числовые поля?

   
 
 автор: Trianon   (07.06.2007 в 13:48)   письмо автору
 
   для: Temnovit   (07.06.2007 в 13:38)
 

индекс, насколько я понимаю, все равно строится по их текстовому представлению. Десяти символов достаточно для UNSIGNED. Одинадцати - для INT.
Впрочем, если INT - autoincrement, то доводить его до переброса знака я бы не советовал.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования