Тема: ON DUPLICATE KEY UPDATE
Потрібно створити рядок (id, 1, 10) а якщо він є то апдейтнути його на (id, 1, 4)
Таблиця
CREATE TABLE `_Location` (
`_id` INT NOT NULL AUTO_INCREMENT,
`_KeyToUsers` INT NULL,
`_Location` VARCHAR(45) NULL,
PRIMARY KEY (`_id`),
INDEX `_KeyToUsers_idx` (`_KeyToUsers`),
CONSTRAINT `_KeyToUsers`
FOREIGN KEY (`_KeyToUsers`)
REFERENCES `_Users` (`_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION);
Спроба 1
INSERT INTO _Location
(_id, _KeyToUsers, _Location )
VALUES
(_id, 1, 10)
ON DUPLICATE KEY UPDATE
_KeyToUsers = 1,
_Location = 4;
Спроба 2
INSERT INTO _Location
(_id, _KeyToUsers, _Location )
VALUES
((SELECT _id FROM _Location WHERE _KeyToUsers = 1 limit 1), 1, 10)
ON DUPLICATE KEY UPDATE
_KeyToUsers = 1,
_Location = 4;
_KeyToUsers це унікальне число, по ньому потрібно шукати
_id - ключ автоінкремента (не відоме)
_Location - це значення яке потрібно постійно буде міняти
звичайно 4 і 10 числа для прикладу в реальності можуть бути будь які.
Ще раз поясню
Мені потрібно вставити значення _Location якщо не існує рядка з _KeyToUsers ключем, а якщо існує то замінити в рядку _Location
_KeyToUsers - ключ
_Location значення
_id - невідоме, автоінкремента
Як це зробити ?