I’ve got this to create a trigger:
x
CREATE TRIGGER `create_account`
AFTER INSERT
ON
`Client`
FOR EACH ROW
BEGIN
SET
@lastID = (
SELECT C.idClient
FROM CLIENT as C
ORDER BY C.idClient
DESC
LIMIT 1
);
SET
@iban = ('FR1330010000019111679074293');
SELECT IF(
LENGTH(@iban) < 11,
CONCAT(
REPEAT('0', (11 - LENGTH(@iban))),
@iban
),
@iban = @iban
);
INSERT INTO `Compte`(`idCompte`,
`numeroCompte`,
`soldeCompte`,
`idClientCompte`,
`statusCompte`)
VALUES (NULL, @iban, '0', @lastId, '0');
END
And MySQL returns me
1064 – Syntax error near ” on line 14″
Someone have explanation?
Thank you all. I work to resolve it yet.
Advertisement
Answer
Did you wanted something like this ? If yes, then additional info: https://www.w3resource.com/mysql/control-flow-functions/if-function.php
The IF function does not need SELECT clause. I have tested it here: TEST
CREATE TRIGGER `create_account`
AFTER INSERT
ON
`Client`
FOR EACH ROW
BEGIN
SET
@lastID = (
SELECT C.idClient
FROM Client C
ORDER BY C.idClient
DESC
LIMIT 1
);
SET
@iban = ('FR1330010000019111679074293');
set @iban = IF(
LENGTH(@iban) < 11,
CONCAT(
REPEAT('0', (11 - LENGTH(@iban))),
@iban
),
@iban
);
INSERT INTO Compte(idCompte,
numeroCompte,
soldeCompte,
idClientCompte,
statusCompte)
VALUES (NULL, @iban, '0', @lastId, '0');
END;
/