[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос INSERT IGNORE не работает.
krovickiy
Есть таблица MySQL заполнена вот так примерно
user posted image

Как зделать запрос так чтоб строки не повторялись?
Вот мой вариант которий не работаэт:
mysql_query("INSERT IGNORE INTO $Name (Date, Time, List) 
VALUES (
'$DATE','$TIME','$LIST'
)")or die('Помилка заповнення таблиці: ' . mysql_error());



_____________
Valick
поле List должно быть уникальным

_____________
Стимулятор ~yoomoney - 41001303250491
krovickiy
Цитата (Valick @ 17.02.2013 - 01:43)
поле List должно быть уникальным

Что знасит поле List должно быть уникальным? Оно не может быть уныкальным
Уныкальным должно быть несколько полей сразу тоесть СТРОКА целиком.
Как решаэтся задача?

_____________
Valick
Цитата
Уныкальным должно быть несколько полей сразу

ну и в чем проблема?


_____________
Стимулятор ~yoomoney - 41001303250491
krovickiy
Цитата (Valick @ 18.02.2013 - 17:02)
Цитата
Уныкальным должно быть несколько полей сразу

ну и в чем проблема?

Проблема в том что когда я записываю в базу данных строку примере
Date Time List
20.12.12 23:00 Новости

она добавляэтся без проблем даже еси там уже соществут такая же запись.
В итоге получаэтся что в базе такие записи:
20.12.12 23:00 Новости
20.12.12 23:00 Новости
А так не должно быть.

Может быть:
21.12.12 23:00 Новости
20.12.12 22:00 Новости
20.12.12 23:00 Новости

Как решыть задачу?

_____________
Placido
Добавь уникальный составной ключ (индекс) на эти три поля
ALTER TABLE `yourtable` ADD UNIQUE KEY (`Date`, `Time`, `List`);
или ALTER IGNORE TABLE ... если в таблице уже есть дубликаты записей. После этого будет работать INSERT IGNORE.
krovickiy
Цитата (Placido @ 19.02.2013 - 00:21)
Добавь уникальный составной ключ (индекс) на эти три поля
ALTER TABLE `yourtable` ADD UNIQUE KEY (`Date`, `Time`, `List`);
или ALTER IGNORE TABLE ... если в таблице уже есть дубликаты записей. После этого будет работать INSERT IGNORE.

Чт здесь не так. Не работаэт.
function DB($CANELI, $DATE, $TIME, $LIST){
global $HOST,$USER,$PASS,$DB,$CANAL;

$CONECT_DB = mysql_connect($HOST,$USER,$PASS)
or die('Зєднання не відбулося: ' . mysql_error());
mysql_query("CREATE DATABASE IF NOT EXISTS $DB",$CONECT_DB)
or die('Помилка створення бази: ' . mysql_error());
for ($i=0; $i<count($CANAL)-1; $i++){

$Name=$CANAL[$i];
$SQL = "CREATE TABLE /* Створення таблиці */
IF NOT EXISTS /* если указанная таблица не существуе */

$Name /* Імя Таблиці */

(
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID), /* ID */
Date TEXT, /* Дата 2013/02/10 */
Time TEXT, /* Час 13:20 */
List CHAR(60) /* Опис Фільм 'За сімейними обставинами' */
);"
;

mysql_select_db($DB); /* Выбирает базу данных MySQL */
mysql_query($SQL, $CONECT_DB)
or die('Помилка створення таблиці: ' . mysql_error());
$SQL= "ALTER TABLE $Name ADD UNIQUE KEY ('Date', 'Time', 'List');";
mysql_query($SQL, $CONECT_DB);
}
/* $SQL="ALTER TABLE $Name";
mysql_query($SQL, $CONECT_DB) */


mysql_select_db($DB); /* Выбирает базу данных MySQL */
$Name=$CANAL[0];
mysql_query("INSERT IGNORE INTO $Name (Date, Time, List)
VALUES (
'
$DATE','$TIME','$LIST'
)"
)or die('Помилка заповнення таблиці: ' . mysql_error());

}


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.