Вы можете попробовать приведенный ниже фрагмент кода, в основном вам нужно использовать DELIMITER, иначе mysql начнет обработку с первого ;
. Кроме того, вы не можете использовать операторы select в триггерах, вы всегда должны использовать select into
и, наконец, я думаю, что вы if
операторы не работают должным образом, они всегда возвращают 1.
DELIMITER $$
CREATE TRIGGER `create_account` AFTER INSERT ON `Client` FOR EACH ROW BEGIN
SELECT C.idClient into @lastID FROM Client as C ORDER BY C.idClient DESC LIMIT 1;
SELECT 'FR1330010000019111679074293' into @iban;
SELECT IF(
LENGTH(@iban) < 11,
CONCAT(
REPEAT('0', (11 - LENGTH(@iban))),
@iban
),
@iban = @iban
) into @iban;
INSERT INTO `Compte`(`idCompte`,
`numeroCompte`,
`soldeCompte`,
`idClientCompte`,
`statusCompte`)
VALUES (NULL, @iban, '0', @lastId, '0');
END$$
DELIMITER ;