MySQL default timestamp of insert
04:11 21 Jun 2021

I have a table X which comprises 1 default columns to record the time when data gets inserted:

`a` int,
`b` varchar(10),
`audit_create` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) 

Then use a scheduled event to run the following statement every 1 minute:

insert into X (a, b) 
select ....

The execution of the statement tables about 20 seconds, so I assume the column audit_create shoud be like:

`2021-06-21 00:00:20.xxx`
`2021-06-21 00:01:21.xxx`
`2021-06-21 00:02:20.xxx`

however, the values of this column seem like when each execution starts to run:

  `2021-06-21 00:00:00.804`
  `2021-06-21 00:01:00.804`
  `2021-06-21 00:02:00.804`

Why the default time values equals when the statement starts rather than when the results are ready?

mysql