Перечислите различия между следующими командами MySql.
- drop table tablename;
- truncate table tablename;
- удалить из tablename, где 1;
Также из вашего опыта, пожалуйста, скажите мне типичный сценарий использования для каждого.
Перечислите различия между следующими командами MySql.
Также из вашего опыта, пожалуйста, скажите мне типичный сценарий использования для каждого.
drop table tablename;
truncate table tablename;
DELETE
, потому что он просто удаляет все данные. DELETE
сканирует таблицу, чтобы сгенерировать количество строк, которые были затронуты.delete from tablename;
WHERE
.DELETE FROM tablename WHERE username = 'joe'
Drop
удаляет таблицу. Я бы бросил стол, если мне это больше не понадобилосьdelete
для выполнения удаления (из определенных строк) с запросом.Я редко "удаляю" что-либо из своих баз данных. Обычно я помещаю столбец флага, например deleted
, в качестве логического значения. Я проверю это. Если его true
, я не представляю эти данные.
Если вы хотите удалить только строки, вы можете использовать DELETE
Если вы хотите удалить таблицу из базы данных, вы можете использовать DROP
Перед удалением данных подумайте, полезны ли данные или нет. Потому что вы не можете получить эти данные.
В дополнение к вышеприведенным ответам на Oracle RDBMS "delete" - это транзакция, которая может быть отброшена, если вы ее не зафиксировали. "Усечение" не может.
Удалить
Обрезать
Падение