我有一张这样的table
+-------------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------------+------+-----+---------+----------------+
| _id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(100) | NO | | NULL | |
| kategori | varchar(50) | NO | | NULL | |
| GR | int(1) | NO | | NULL | |
| WW | int(1) | NO | | NULL | |
| FS | int(1) | NO | | NULL | |
+-------------+---------------------+------+-----+---------+----------------+
我想更新一下 Kategori
每次 GR
, WW
或者 FS
改变了。
如果 GR
, WW
或者 FS
是 1
值应为 GR, WW, FS
为了 kategori
.
如果 GR=1
, WW=0
以及 FS=1
值应为 GR, FS
为了卡泰戈里等等。
我找不到有效的触发器。
2条答案
按热度按时间4dc9hkyq1#
如果您的版本支持它,您可以使用生成的列https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html 例如
我让你来计算gw,ww,fs的排列
vojdkbi02#
下面的触发器应该可以完成这个任务。
它在更新表之前运行,如果没有为
kategory
字段,检查GR
,WW
,和FS
为了设置它。触发器识别一个事实
UPDATE
可能发生在没有设置所有3个字段的情况下:在本例中,它在数据库中查找字段的现有值。这应该允许kategori
在这种情况下与数据保持同步。