如何向数据库添加动态范围(将范围存储在表中)

时间:2015-02-19 22:32:15

标签: mysql database

Table  (CostTitle)
Id_            _costTitle_      
1                   A          
2                   B           
3                   C         
4                   D         
5                   E           
6                   F       
  • A引用0-99之间的数字
  • B引用100-199之间的数字
  • C引用200-299之间的数字
  • D引用300-399之间的数字
  • E引用400-499之间的数字
  • F引用500-599之间的数字

costCode将基于costTitle的引用数字

Table  (CostCode)
Id_            _costTitle_        _costCode_    _costProductTitle_
1                   A                12             productX
2                   B                111            productY
3                   B                142            productZ
4                   C                201            productK
5                   F                511            productL
6                   F                582            productM

我正在尝试添加产品并动态分配成本代码。

感谢您提前

1 个答案:

答案 0 :(得分:0)

我想你想把范围存储在一个表中。所以你需要一个BEFORE INSERT触发器,它设置new.costTitle。触发器在这里解释:

http://dev.mysql.com/doc/refman/5.6/en/create-trigger.html

MariaDB提供了另一种选择:动态列。但是,由于此功能的限制,您无法将范围存储在其他表中。您需要对虚拟列定义中的范围进行硬编码,这对我来说并不是一个好主意(当然,您决定)。

https://mariadb.com/kb/en/mariadb/virtual-computed-columns/