Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > REPLACE с условием


Автор: SDEVIL 7.11.2008, 14:43
Вот столкнулся с такой проблемой, как можно выполнить запрос с условием, есть таблица:
Код

CREATE TABLE IF NOT EXISTS `setting` (
  `s_id` tinyint(4) NOT NULL auto_increment,
  `s_name` tinytext NOT NULL,
  `s_value` text,
  PRIMARY KEY  (`s_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Необходимо добавить данные в таблицу, но если такая запись уже существует, то обновить ее.
Запросом REPLACE не получается.
пишу запрос:
Код

REPLACE INTO setting ('s_name', 's_value') VALUES ('NAME', '1')

и вне зависимости от того есть такая запись или нет, новая запись просто добавляется и не перезаписывает старую...
Не пойму как быть? smile 
 smile 

Автор: skyboy 7.11.2008, 15:15
Цитата(SDEVIL @  7.11.2008,  13:43 Найти цитируемый пост)
новая запись просто добавляется и не перезаписывает старую

а с чего это запрос должен перезаписать старую запись? 
ты про запрос UPDATE слышал?
про то, что REPLACE удаляет старую запись только в случае совпадения уникального ключа, читал?
про то, что такое уникальный ключ знаешь?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)