检查MySQL中的约束

时间:2015-08-11 19:35:08

标签: mysql triggers

我在MySQL中有一个包含两列的简单表:Timestamp和float。我需要的是确保新插入的值大于表中之前的任何其他值。我怎样才能以正确的方式实现?

CREATE TABLE IF NOT EXISTS `mydb`.`table1` (
   `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `read` FLOAT UNSIGNED NOT NULL,
   PRIMARY KEY (`timestamp`))
ENGINE = InnoDB;

2 个答案:

答案 0 :(得分:1)

CREATE TRIGGER TRG_CHECKCONSTRAINT 
BEFORE INSERT ON TABLE1 
FOR EACH ROW 
BEGIN 
DECLARE msg varchar(255); 
IF NOT new.READ > (SELECT MAX(READ) FROM TABLE1) THEN 
SET msg = 'INVALID DATA' 
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; 
END IF; 
END

答案 1 :(得分:0)

使用BEFORE INSERT触发器。 MySQL不使用CHECK约束。