CREATE TRIGGER check_score BEFORE INSERT ON student FOR EACH ROW BEGIN IF NEW.score >= 60 THEN SET @sql = CONCAT('ALTER TABLE student MODIFY COLUMN score INT CHECK (score >= 60)'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END IF; END;这个里面的stmt是什么
时间: 2024-02-14 13:06:58 浏览: 129
在这个SQL语句中,stmt是一个用户定义的变量,用于存储动态生成的SQL语句。在这个例子中,stmt被用于存储动态生成的ALTER TABLE语句,该语句用于修改student表的score列,增加一个CHECK约束,以确保score列的值不小于60。
PREPARE语句用于准备动态生成的SQL语句,并将其存储在stmt变量中。EXECUTE语句用于执行stmt变量中的动态SQL语句。最后,DEALLOCATE PREPARE语句用于释放stmt变量占用的内存空间。
阅读全文