I’ve got this to create a trigger:
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; /