我在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;
答案 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约束。