[英]How check if the sum of the values of two columns, in the same row have exactly 100 as result in mysql
我在mysql(phpmyadmin)中有這個問題。我應該檢查2列的值是否等於100…例如,我有此表
| BLABLABLA | BLABLABLA | VALUE1 | VALUE2 |
並且用戶想要添加此值(bla,bla,20、30)。我希望在此表中不能添加20和30,因為20 + 30 <> 100 ..我的代碼是:
ALTER TABLE `partita` CHECK (`100` = (SELECT (`POSSESSO_PALLA_CASA`+`POSSESSO_PALLA_OSPITE`) FROM `partita`))
但是自然這是錯誤的..我該怎么辦? 謝謝你們!!!
如前所述,MySQL不支持CHECK
約束。 根據MySQL文檔中的內容:
CHECK子句已解析,但被所有存儲引擎忽略
您應該使用BEFORE INSERT
觸發器作為替代,如下所示
DELIMITER //
CREATE TRIGGER sumcheck_before_insert
BEFORE INSERT
ON bla_table FOR EACH ROW
BEGIN
IF (NEW.VALUE1 + NEW.VALUE2 <> 100) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'can not insert data';
END IF
END; //
DELIMITER ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.