02.07.2012, 17:33
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Дублирование записи и несработка replace
Мне нужно чтобы не добавлялись идентичные 3 поля если они встретятся, а они добавляются даже если стоит первичный или уникальный ключ у меня в первом идуещм поле. Вот так вставляю и добавляется, а нужно чтобы заменялся дубликатом. Что делать? Вот так вставляю.
Код:
|
replace into cat (name1,surname,age) VALUES("Алина","Глушева",34) |
прочитал здесь:
http://phpclub.ru/mysql/doc/replace.html
|
|
02.07.2012, 18:49
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
а какие поля у вас назначены уникальными?
|
|
02.07.2012, 19:50
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Уникальными никакие, пробую добавить уникальность на все поля, пишет что дубликат вроде или что нельзя вставить.
|
|
02.07.2012, 20:16
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Вот так сработало:
Код:
|
alter ignore table cat add UNIQUE (name1,surname,age) |
Скажите, а в чем разница:
Код:
|
alter table cat add UNIQUE (name1,surname,age) |
от этого:
Код:
|
alter table cat add (UNIQUE (name1,surname,age)) |
|
|
02.07.2012, 20:20
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от kilogram
|
Уникальными никакие, пробую добавить уникальность на все поля, пишет что дубликат вроде или что нельзя вставить.
|
вам это и не поможет, если вы все поля сделаете уникальными, тогда вы не сможете вставить например "Маша Пупкина" если у вас уже будет какая ни будь "Маша Жопкина".
Вам все же придется делать два запроса, иначе это никак не решить. Первым проверяете наличие, вторым вставляете/обновляете.
|
|
02.07.2012, 20:46
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Залез в таблицу, там такое:
Код:
|
| cat | CREATE TABLE `cat` (
`number` int(11) NOT NULL AUTO_INCREMENT,
`name1` varchar(20) DEFAULT NULL,
`surname` char(12) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
PRIMARY KEY (`number`),
UNIQUE KEY `age` (`age`),
UNIQUE KEY `name1` (`name1`,`surname`,`age`),
UNIQUE KEY `name1_2` (`name1`,`surname`,`age`),
UNIQUE KEY `name1_3` (`name1`,`surname`,`age`)
) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 | |
Хочу удалить уникальный ключ так, не хочет удаляться:
alter table cat drop UNIQUE name1
|
|
02.07.2012, 21:00
|
Профессор
|
|
Регистрация: 19.03.2012
Сообщений: 163
|
|
Вот так удалилось
Код:
|
alter table cat drop index name1 |
Я заметил странную вещь, если написать такой запрос:
Код:
|
alter ignore table cat add UNIQUE (name1,surname,age) |
А потом запустить 3 раза, выходит такое в результате в таблицу.
Что это такое произошло?
Код:
|
UNIQUE KEY `name1` (`name1`,`surname`,`age`),
UNIQUE KEY `name1_2` (`name1`,`surname`,`age`),
UNIQUE KEY `name1_3` (`name1`,`surname`,`age`) |
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Метод replace |
cyber |
Events/DOM/Window |
20 |
07.05.2012 00:38 |
Помогите с replace! |
faforty |
Общие вопросы Javascript |
2 |
28.08.2011 13:10 |
|
|
|