Forum Webscript.Ru
Общие => Базы данных => Тема начата: golden-den от 18 Июля 2007, 22:02:15
-
CREATE TABLE `catalog_data` (
`id` int(11) NOT NULL auto_increment,
`cid` int(16) default NULL,
`title` text
PRIMARY KEY (`id`)
) TYPE=MyISAM
Как добавить в эту таблицу 1 строку, только так чтобы не было дупликатов со значениями \'cid\'.
Делать сначала один запрос, в которм проверять наличие строки, а заетм, если еще нет такой строки, то вторым запросом добавлять?
Можно ли одним запросом сделать?
-
создать unique key(cid) и использовать INSERT IGNORE или REPLACE
-
fidget
гм
ну, дупликатов точно не будет :-)
но подозреваю, что цели преследуются несколько иные :)
-
hanslinger, у него цель сделать добавление одним запросом так чтобы не было дубликатов.
-
fidget
Да. хочу одним запросом добавить все записи (а их бывает много), так чтобы новые добавились, а старые сделали update
-
тогда смотрите в сторону либо REPLACE либо INSERT .. ON DUPLICATE KEY UPDATE.
Нов обоих случаях вам нужно создать UNIQUE KEY на этот столбец.