我怎样才能删除表格中的最后一项?

时间:2015-12-08 16:06:48

标签: mysql database mysql-workbench

我有一张桌子,必须至少有一件物品。如何防止删除最后一项?

例如,我有一个名为USER的表,该表必须至少包含一个用户。我可以删除用户,但是当用户数等于1时我无法删除。

3 个答案:

答案 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查询之前的行数。