2013-03-06 3 views
0

Со следующим CHECKINDATEENTERED всегда будут отличаться, но VENUECREATEDAT всегда будет одинаковым.предотвращение дублирования записей с INSERT IGNORE

Мне было интересно, удастся ли мне предотвратить дублирование записей, проверив только один столбец в таблице createdAt.

SQL = "INSERT IGNORE INTO CHECKINS (CHECKINPLATFORM, MEMBERID, VENUENAME, VENUELAT, VENUELNG, VENUECITY, VENUECOUNTRY, VENUECREATEDAT, CHECKINDATEENTERED) VALUES ('"& strFoursquare &"', '"& objMembers("MEMBERID") &"', '"& strVenueName &"', '"& strlat &"', '"& strlng &"', '"& strCity &"', '"& strCountry &"', '"& FormatDateMySQL(strcreatedAt) &"', '"& FormatDateMySQL(NOW) &"')" 
+0

Я действительно очень надеюсь, что эти значения [правильно экранированы] (http://bobby-tables.com/). – tadman

ответ

1

Если у вас есть UNIQUE INDEX, тогда записи, конфликтующие с этим ключом, будут игнорироваться. Вам нужно установить свои «повторяющиеся» условия, создав индекс для конкретных столбцов, относящихся к их уникальной идентичности.

+0

Существует столбец идентификатора, который является первичным ключом. Вы обращаетесь к нему? – Efe

+0

Столбец «PRIMARY KEY», очевидно, уникален, но вы его не вставляете, не так ли? – tadman

+0

Его автоматическое увеличение. Ах, то, что вы написали выше, похоже на другой язык для меня. Не могли бы вы объяснить мне: «Вам нужно установить свои« повторяющиеся »условия, создав индекс для конкретных столбцов, относящихся к их уникальной личности». с примером – Efe