Надеюсь, вы снова можете мне помочь, спасибо уже за то, что указали мне в правильном направлении, создав контрольную цифру для нового IBAN в Германии. Теперь я пытаюсь обновить нашу базу данных членства с недавно вычисленными BIC и IBAN, но, похоже, проблема с оператором UPDATE в базе данных MariaDB MySQL, несмотря на то, что я думаю, что получил правильный синтаксис.Ошибка внутренней коррекции MariaDB и выберите
Все, что я пытаюсь сделать, это установить два поля «konto_bic» и «konto_iban» в таблице «mitglieder» из инструкции SELECT, которая создает временную таблицу b с столбцами «id», «bic» и "IBAN". «Id» одинаково в двух таблицах.
Вот моя первая попытка:
update a
set a.`konto_bic` = b.`BIC`, a.`konto_iban` = b.`IBAN`
from `mitglieder` a
INNER JOIN (SELECT m.`id`, m.`nachname`, m.`vorname`, m.`konto_bank`, m.`konto_blz`, m.`konto_nummer`, k.`bic` AS 'BIC', CONCAT('DE',LPAD(98-MOD(CONVERT(CONCAT(m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0'),'1314','00'), decimal(24)),97),2,'0'),m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0')) AS 'IBAN'
FROM `mitglieder` m
LEFT JOIN `konvert_bic_blz` k
ON m.`konto_blz` = k.`blz`
ORDER BY m.`nachname`, m.`vorname`) b
ON a.`id` = b.`id`
Однако это дало ошибку, и я попытался это вместо того, чтобы:
update `mitglieder` a
set a.`konto_bic` = b.`bic`, a.`konto_iban` = b.`iban`
FROM (SELECT m.`id` as 'id', k.`bic` as 'bic', CONCAT('DE',LPAD(98-MOD(CONVERT(CONCAT(m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0'),'1314','00'), decimal(24)),97),2,'0'),m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0')) AS 'iban'
FROM `mitglieder` m
LEFT JOIN `konvert_bic_blz` k
ON m.`konto_blz` = k.`blz`) b
WHERE a.`id` = b.`id`
Это также не получил мне никаких дальнейших (ошибка из БД).
Может ли кто-нибудь увидеть мою синтаксическую ошибку? Заранее спасибо за помощь
Stephan
Не можете найти нам ошибку? –