我有一张桌子,必须至少有一件物品。如何防止删除最后一项?
例如,我有一个名为USER的表,该表必须至少包含一个用户。我可以删除用户,但是当用户数等于1时我无法删除。
答案 0 :(得分:1)
你可能需要写这样的sp。
CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteuser`(userId INT)
BEGIN
IF EXISTS(SELECT * FROM USER WHERE Id<>userId) THEN
DELETE FROM USER WHERE Id=userId;
END IF;
END$$
DELIMITER ;
你可以打电话给它。
call deleteuser(1);
答案 1 :(得分:0)
怎么样:
DELETE FROM USER
WHERE ID = @ID
AND (SELECT COUNT(*) FROM USER AS t1) > 0
答案 2 :(得分:0)
尝试使用TRIGGERS这将验证该表上的Delete查询之前的行数。