mysql 如何在添加约束键后,再添加相同的行时使其某字段相加,而不是报错

mysql test1@127.0.0.1:test> alter table test add constraint uk_test unique (a,b);
Query OK, 0 rows affected
Time: 0.090s
mysql test1@127.0.0.1:test> insert into test (a,b,c) values ('1','2','3');
Query OK, 1 row affected
Time: 0.004s
mysql test1@127.0.0.1:test> select * from test;
+---+---+---+
| a | b | c |
+---+---+---+
| 1 | 2 | 3 |
+---+---+---+
1 row in set
Time: 0.012s
mysql test1@127.0.0.1:test>

在设置约束键后,当我在 insert 一条相同的数据时,我想 new.c + old.c;

#当我添加一条相同的数据时;

mysql test1@127.0.0.1:test> insert into test (a,b,c) values ('1','2','3');
Query OK, 1 row affected
Time: 0.004s

#正常情况会报错,但我想要得到下面的效果 c = (new.c + old.c);


mysql test1@127.0.0.1:test> select * from test;
+---+---+---+
| a | b | c |
+---+---+---+
| 1 | 2 | 6 | 
+---+---+---+
1 row in set
Time: 0.012s

有这种操作吗?

#或者可以这样吗:

alter table test add constraint uk_test unique (a,b) on add sum(c);
阅读 1.8k
1 个回答
create unique index uk_abc on tt(a,b,c);
INSERT INTO tt (a,b,c) VALUES (1,2,3) 
  ON DUPLICATE KEY UPDATE c=c+values(c);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题