Я пытаюсь создать синтаксис sql:
UPDATE `%s`
JOIN (WITH t2 AS
(
SELECT LAG(storymain_id,1) OVER (ORDER BY storymain_id) AS lg, `%s`.*
FROM `%s`
)
SELECT t2.*,
1 + SUM(CASE WHEN COALESCE(lg,storymain_id) = storymain_id THEN 0 ELSE 1 END )
OVER (ORDER BY storymain_id) AS new_id
FROM t2 ) t2
ON `%s`.storymain_id = t2.storymain_id SET `%s`.storymain_id = t2.new_id;
на моем сервере maria-db, версия которого:
mysql Ver 15.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Я получил ошибку, когда запустите его:
SQLSTATE[42000]:
Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB Server version for the right syntax to use near 't2 AS\r\n\t\t\t\t
(\r\n\t\t\t\t\tSELECT LAG(storymain_id, 1) OVER (ORDER BY storymain_id) AS' at line ~.
Мне нужно заставить его работать, но я не знаю, как изменить синтаксис ..
Спасибо за вашу помощь ...