2015-12-08 4 views
0

У меня есть таблица, которая должна иметь минимум один элемент. Как я могу предотвратить удаление последнего элемента?Как я могу удалить последний элемент таблицы?

Например, у меня есть таблица с именем USER, эта таблица должна содержать хотя бы одного пользователя. Я могу удалить пользователя, но я не могу удалить, когда число пользователей равно одному.

+0

Просим предоставить более подробную информацию о том, что вы пытаетесь выполнить. Не ясно. –

+0

Я отредактировал один пример – anubis

+0

, вы можете вправо сохранить хранимую процедуру и проверить, не засчитан ли счетчик записей (*)> 0, а затем пропустить иначе. –

ответ

0

Как насчет:

DELETE FROM USER 
WHERE ID = @ID 
AND (SELECT COUNT(*) FROM USER AS t1) > 0 
+0

mysql не позволит вам это, сказав: «Вы не можете указать целевую таблицу« пользователь »для обновления в предложении FROM» –

+0

Я отредактировал свой ответ и добавил псевдоним к таблице в предложении WHERE. –

1

вам, возможно, придется написать зр, как это.

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); 
0

Попробуйте использовать TRIGGERS, который будет проверять количество строк перед удалением запроса в этой таблице.

Смежные вопросы