I reported this bug report to Oracle:
http://bugs.mysql.com/bug.php?id=79148
It is almost the same in MariaDB - but the error message is different, see
SELECT VERSION(); -- 10.1.2-MariaDB-log
CREATE TABLE `vc_test`.`t1`(
`id` INT NOT NULL,
`id3` INT AS ( id*3 ) VIRTUAL
);
INSERT INTO `vc_test`.`t1` VALUES (1,3);
-- retruns: Error Code: 1906 - The value specified for computed column
'id3' in table 't1' ignored
SELECT * FROM t1;
-- returns empty set
So here the error message is that "value is ignored" (not that it is
"not allowed"). It looks to me like somebody in MariaDB actually
identified the problem, but forgot to finish things.
The statement should succeed (maybe raise a warning), and the
"specified value should be ignored" as the error message says, but
what it in reality is not.
What say?