【发布时间】:2014-11-29 16:40:28
【问题描述】:
MariaDB 具有虚拟列,允许您自动对其他列数据执行操作。例如,如果您想以不同的度量单位显示数据,只需除以 10 或 1000,如下表定义所示:
CREATE TABLE a (
id INT NOT NULL AUTO_INCREMENT,
distance_meters INT (11),
distance_kilometers FLOAT (11,3) AS (distance_meters / 1000) VIRTUAL,
PRIMARY KEY ( id )
) ENGINE=InnoDB;
但是,如何创建作为表列子集哈希的虚拟列?例如。下表(不起作用)旨在对姓名和薪水进行哈希处理,以便稍后通过与之前的哈希列表进行比较,我可以轻松地再次检查是否有任何员工的姓名或薪水发生了变化。我不想要整行的哈希。
CREATE TABLE employees (
id INT NOT NULL,
name VARCHAR(200),
salary INT(12),
age int(3),
hash VARCHAR(AS (MD5(concat(name, salary)))) PERSISTENT,
PRIMARY KEY ( id )
) ENGINE=InnoDB;
【问题讨论】:
标签: hash mariadb calculated-columns