0
두 필드에 고유 한 제약 조건이있는 테이블이 있습니다.중복 키 업데이트시
CREATE TABLE `targets` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`client` SMALLINT(6) UNSIGNED NOT NULL,
-- some more fields here
`order_column` INT(10) NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `client_order_column` (`client`, `order_column`)
)
그리고 지금은 order_column
모든 client
값 0
로 시작, 증분 정수를 포함하는 것, 그래서를 업데이트 할. 나는 이런 식으로 만들려고 노력 해요 :
replace into targets (
`id`,
`client` ,
`order_column`
)
(select
`id`,
`client` ,
0 as order_column from targets
)
on duplicate key update
order_column = order_column + 1
을하지만 마지막 줄에 syntax error
를 받고. 깨닫지 못해 뭐가 잘못 됐니, 제발, 도와주세요.
Btw : 원하는 결과를 얻으려면 더 좋은 방법이 있습니까?
그러나'VALUES (order_column)는'항상 0입니다! – k102
무엇을 실행하면'중복 키 ON UPDATE order_column = order_column + 1' –
오류가'Column 'order_column'필드 목록에 모호합니다' – k102