I have a problem with inserting current user who actually insert,update or delete the data into the table.
I know that the subject was described many times and I did a lot of research, yet ended up here asking for help with this problem.

I have 2 tables: addresses and addresses_do-not-use

table addresses:
    
    CREATE TABLE `addresses` (
    	`AddressID` INT(11) NOT NULL AUTO_INCREMENT,
    	`HHNO` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`NicolaID` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`PropertyName` VARCHAR(60) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`PropertySubName` VARCHAR(60) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`PropertyNumber` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`PropertyStreet` VARCHAR(60) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`PropertyTown` VARCHAR(60) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`PropertyCounty` VARCHAR(60) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`Postcode` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`ADD1` VARCHAR(128) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`ADD2` VARCHAR(128) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`ADD3` VARCHAR(128) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`ADD4` VARCHAR(128) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	`Number_of_eligible_participants` VARCHAR(5) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
    	PRIMARY KEY (`AddressID`),
    	INDEX `NicolaID` (`NicolaID`) USING BTREE,
    	CONSTRAINT `addresses_ibfk_1` FOREIGN KEY (`NicolaID`) REFERENCES `ids` (`NicolaID`) ON UPDATE CASCADE ON DELETE CASCADE
    ) COLLATE='latin1_swedish_ci'
    ENGINE=InnoDB
    AUTO_INCREMENT=8539;


    

Table addresses_do-not-use:
    
        CREATE TABLE `addresses_do-not-use` LIKE `addresses`;
    
        ALTER TABLE `addresses_do-not-use` MODIFY COLUMN AddressID INT(11) NOT NULL, 
       DROP PRIMARY KEY, ENGINE = MyISAM, 
       ADD action VARCHAR(8) DEFAULT 'insert' FIRST,
       ADD username VARCHAR(60) NOT NULL DEFAULT USER() AFTER action,
       ADD revision INT(6) NOT NULL AUTO_INCREMENT AFTER username,
       ADD dt_datetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER revision,
       ADD PRIMARY KEY (AddressID, revision);    
    
then I created triggers following this link:
[Is there a MySQL option/feature to track history of changes to records?][1]
I added USER function in order to collect the data who changed the record.
        
        DROP TRIGGER IF EXISTS `addresses_ai`;
        DROP TRIGGER IF EXISTS `addresses_au`;
        DROP TRIGGER IF EXISTS `addresses_bd`;
    
        INSERT INTO `addresses_do-not-use` (`action`, `revision`, `username`, `dt_datetime`, `AddressID`,  `HHNO`,  `NicolaID`,  `PropertyName`,  `PropertySubName`,  `PropertyNumber`,  `PropertyStreet`,  `PropertyTown`,  `PropertyCounty`,  `Postcode`,  `ADD1`,  `ADD2`,  `ADD3`,  `ADD4`,  `Number_of_eligible_participants`)  SELECT 'insert', SUBSTRING_INDEX(USER(),'@',1), NULL,  NOW(), d.*
        FROM `addresses` AS d WHERE d.AddressID = NEW.AddressID
    	
        INSERT INTO `addresses_do-not-use` (`action`, `revision`, `username`,  `dt_datetime`, `AddressID`,  `HHNO`,  `NicolaID`,  `PropertyName`,  `PropertySubName`,  `PropertyNumber`,  `PropertyStreet`,  `PropertyTown`,  `PropertyCounty`,  `Postcode`,  `ADD1`,  `ADD2`,  `ADD3`,  `ADD4`,  `Number_of_eligible_participants`)  SELECT 'update', SUBSTRING_INDEX(USER(),'@',1), NULL,  NOW(), d.*
        FROM `addresses` AS d WHERE d.AddressID = NEW.AddressID
    	
        INSERT INTO `addresses_do-not-use` (`action`, `revision`, `username`,  `dt_datetime`, `AddressID`,  `HHNO`,  `NicolaID`,  `PropertyName`,  `PropertySubName`,  `PropertyNumber`,  `PropertyStreet`,  `PropertyTown`,  `PropertyCounty`,  `Postcode`,  `ADD1`,  `ADD2`,  `ADD3`,  `ADD4`,  `Number_of_eligible_participants`)  SELECT 'delete', SUBSTRING_INDEX(USER(),'@',1), NULL,  NOW(), d.*
        FROM `addresses` AS d WHERE d.AddressID = OLD.AddressID   
    
     
        
The username field remains empty in the addresses_do-not-use table after amending records in addresses table. The rest of the fields are OK but not username. The MySQL version is 5.1.73.
Users connect using HeidiSQL/Navicat being logged in as themselves, so their username should be passed without any problems.

Any ideas why?
	
I would really appreciate any help with this. 

Maciej
    
  [1]: https://stackoverflow.com/questions/12563706/is-there-a-mysql-option-feature-to-track-history-of-changes-to-records "Is there a MySQL option/feature to track history of changes to records?"