Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.0, 5.5.28, 5.3.8, 5.2.12
-
None
-
None
Description
Virtual columns are always NULL in Triggers. I beilive this is a bug, because documentation says:
"Triggers, stored procedures, informational commands (...), and partitioning based on virtual columns are all fully supported."
Example:
DROP VIEW IF EXISTS `t1`;
|
DROP TABLE IF EXISTS `t1`;
|
CREATE TABLE `t1` (
|
`a` INTEGER UNSIGNED NULL DEFAULT NULL,
|
`b` INTEGER UNSIGNED GENERATED ALWAYS AS (`a`) VIRTUAL
|
)
|
ENGINE = MyISAM;
|
DROP VIEW IF EXISTS `t2`;
|
DROP TABLE IF EXISTS `t2`;
|
CREATE TABLE `t2` (
|
`c1` INTEGER UNSIGNED NOT NULL
|
)
|
ENGINE = MyISAM;
|
|
|
DELIMITER ||
|
|
CREATE TRIGGER `t1_ins_aft`
|
AFTER INSERT
|
ON `t1`
|
FOR EACH ROW
|
BEGIN
|
INSERT INTO `t2` (`c1`) VALUES (NEW.`b`);
|
END ||
|
|
CREATE TRIGGER `t1_del_bef`
|
BEFORE DELETE
|
ON `t1`
|
FOR EACH ROW
|
BEGIN
|
INSERT INTO `t2` (`c1`) VALUES (OLD.`b`);
|
END ||
|
|
DELIMITER ;
|
– Then I try those:
INSERT INTO `t1` (`a`) VALUES (1), (2), (3);
|
DELETE FROM t1;
|
It looks that b is treated as NULL.