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

Форум MySQL

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

 

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

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

тема: Вставка уникальных записей
 
 автор: itica   (02.06.2009 в 01:24)   письмо автору
 
 

Есть около сотни записей, которые надо вставить в таблицу - но они могут повторяться (повторяющимися считаются в которых совпадают три столбца одновременно) с теми что уже есть в таблице.
Нужно вставить только те записи, которые не будут повторяться, но проверять на уникальность каждую запись через COUNT - убивать сервер, но ничего более подходящего не нашёл...
Может существуют какие-либо более продуктивные приёмы для этой задачи? Типа IGNORE для первичного ключа...

  Ответить  
 
 автор: Loki   (02.06.2009 в 10:27)   письмо автору
 
   для: itica   (02.06.2009 в 01:24)
 

Задать уникальный ключ по всем трем столбцам, а потом INSERT IGNORE...

  Ответить  
 
 автор: itica   (02.06.2009 в 21:22)   письмо автору
 
   для: Loki   (02.06.2009 в 10:27)
 

Ммм.. не додумался.. а можно усложнить, чтобы уникальными записи считались при разных регистрах этих столбцов?

  Ответить  
 
 автор: Trianon   (02.06.2009 в 21:28)   письмо автору
 
   для: itica   (02.06.2009 в 21:22)
 

за это отвечает атрибут COLLATION соответствующего столбца.

  Ответить  
 
 автор: itica   (03.06.2009 в 00:09)   письмо автору
 
   для: Trianon   (02.06.2009 в 21:28)
 

А можно поподробнее про него?
Нашёл про него только это "Как столбец сортируется в индексе. В MySQL это может иметь варианты `A' (по возрастанию) или NULL (не сортируемый).", то есть сортировка - а мне нужна уникальность среди разных регистров.

PS: Внешний ключ надо ещё индексом делать или внешний ключ уже и есть индекс?

  Ответить  
 
 автор: Trianon   (03.06.2009 в 08:16)   письмо автору
 
   для: itica   (03.06.2009 в 00:09)
 

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

VARCHAR X(nn) COLLATE 'cp1251_general_cs'

Нет. Индекс нужно создать.

  Ответить  
Rambler's Top100
вверх

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