簡體   English   中英

如何檢查同一行中兩列的值的總和是否完全等於100作為mysql中的結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM