Хорошо, я пытаюсь скопировать уникальные записи из одной таблицы в другую, а затем записать их обратно, чтобы отсеять точные дубликаты.Ниже приведены запросы, которые я использую для этого.
// create new "temp" table
$Database->Query = "
CREATE TABLE IF NOT EXISTS `TempQuickIcon` (
`ListingID` int(11) NOT NULL,
`QuickIconID` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
";
$Database->RunQuery();
// insert distinctive values but only for this listing id
$Database->Query = "INSERT INTO TempQuickIcon(`ListingID`,`QuickIconID`) SELECT DISTINCT `ListingID`,`QuickIconID` FROM `_ListingQuickIcon` WHERE `ListingID` = '{$GetNewListingID}'";
$Database->RunQuery();
// delete this listings records from the original table
$Database->NewTransaction();
$Database->Table = "_ListingQuickIcon";
$Database->Conditions = "`ListingID` = '{$GetNewListingID}'";
$Database->DeleteRecord();
// insert records from "temp" table
$Database->Query = "INSERT INTO _ListingQuickIcon(`ListingID`,`QuickIconID`) SELECT DISTINCT `ListingID`,`QuickIconID` FROM `TempQuickIcon`";
$Database->RunQuery();
$Database->Query = "TRUNCATE TABLE `TempQuickIcon`";
$Database->RunQuery();
Хорошо, поэтому, очевидно, у меня есть обертка базы данных, но я позаботился о том, чтобы в ней не было функциональных проблем, проверяя их один за другим.Я также проверил каждый запрос один за другим, и процедура работает.
Однако, когда я пытаюсь выполнить всю последовательность запросов вместе, другими словами, чтобы выполнить скрипт ... он обрабатывает без ошибок, но нена самом деле, похоже, не следует DISTINCT и копирует две (или более ... если есть несколько дубликатов) записей в TempQuickIcon.
Но если я запускаю каждую часть сценария по отдельности, за DISTINCT следуетуникальные записи копируются.
Я знаю, что это должно быть что-то глупое и что я где-то совершаю ошибку.Но я не вижу этого.
Есть мысли?Я, очевидно, предоставлю то, что могу.