Как вставить дублирующее обновление ключа в MySQL с помощью первичного ключа - это номер автоматического увеличения? Таким образом, уникальный ключ не может быть указан для новой записи.Codeigniter при повторном обновлении ключа с автоматическим приращением в MySQL
-1
A
ответ
1
ODKU работает не только для ключей PRIMARY, но и работает на всех ключах UNIQUE. Так что вам нужно просто определить еще один уникальный ключ, чтобы поймать дубликаты.
ALTER TABLE `table` ADD UNIQUE (
`field1`
/*
...
,`fieldN`
*/
);
0
Вы должны изменить таблицу своей базы данных. Например, это будет сделать столбец 'ITEMS.itemid'
первичный ключ и автоинкрементного:
ALTER TABLE ITEMS CHANGE itemid itemid INT(10)AUTO_INCREMENT PRIMARY KEY;
Затем, при добавлении новых строк в таблицу не нужно указывать itemid
; он будет генерировать автоматически увеличиваемое значение, и вы не получите ошибку «повторного ключа» при обновлении.
Попробуйте этот ... $ sql = $ this-> db-> insert_string ('table', $ data). 'ON DUPLICATE KEY UPDATE field = значение'; $ this-> db-> query ($ sql); $ id = $ this-> db-> insert_id(); –
Я смущен, что такое переменная $ id? Как они могут знать MySQL дубликат, если я не укажу старый ключ в $ data? Данные могут содержать данные как с старыми, так и с новыми ключами –
@PriskaAprilia Вам нужно вставить данные, идентификатор базы данных (первичный ключ), автоматический прирост? –