Question: I got a stupid problem with SQL that I can't fix.

```
ALTER TABLE  `news` 
 ADD  `dateAdded` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AUTO_INCREMENT ,
 ADD PRIMARY KEY (  `dateAdded` )

```

Error: 

```
(#1067)Invalid default value for 'dateAdded'

```

Can somebody help me?

Answer: 
`CURRENT_TIMESTAMP` is only acceptable on `TIMESTAMP` fields. `DATETIME` fields must be left either with a null default value, or no default value at all - default values must be a constant value, not the result of an expression.

relevant docs: <http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html>

You can work around this by setting a post-insert trigger on the table to fill in a "now" value on any new records.
Also do note when specifying `DATETIME` as `DATETIME(3)` or like on MySQL 5.7.x, you also have to add the same value for `CURRENT_TIMESTAMP(3)`. If not it will keep throwing '*Invalid default value*'.