Я використовую wampserver 2.2. Коли я хочу видалити всі записи таблиці в phpMyAdmin (виділити всі), вона видаляє лише один запис, а не всі записи. Чому він не видаляє всі записи?
SHIFT-DEL
Я використовую wampserver 2.2. Коли я хочу видалити всі записи таблиці в phpMyAdmin (виділити всі), вона видаляє лише один запис, а не всі записи. Чому він не видаляє всі записи?
SHIFT-DEL
Відповіді:
У вас є 2 варіанти delete
і truncate
:
delete from mytable
Це видалить увесь вміст таблиці, не скидаючи автоінкрементаційний ідентифікатор, цей процес відбувається дуже повільно. Якщо ви хочете видалити конкретні записи, додайте в кінці пункт а.
truncate myTable
Це скине таблицю, тобто всі автоматичні додаткові поля будуть скинуті. Це DDL, і це дуже швидко. Ви не можете видалити будь-яку конкретну запис через truncate
.
На вкладці Sql запустіть один із наведених нижче запитів:
delete from tableName;
Видалити : видалить усі рядки з таблиці. Наступна вставка прийме наступний ідентифікатор автоматичного збільшення.
або
truncate tableName;
Відрізати : також буде видалено рядки з таблиці, але вона почнеться з нового рядка з 1.
Детальний блог з прикладом: http://sforsuresh.in/phpmyadmin-deleting-rows-mysql-table/
Скористайтеся цим запитом:
DELETE FROM tableName;
Примітка. Щоб видалити якусь конкретну запис, ви також можете задати умову, у якій також є запит у запиті.
АБО ви можете також використовувати цей запит:
truncate tableName;
Також пам’ятайте, що ви не повинні мати жодних стосунків з іншими таблицями. Якщо в таблиці буде якесь обмеження для зовнішнього ключа, то цей запис не буде видалений і призведе до помилки.
"Обрізати tableName" не вдасться у таблиці з визначеним обмеженням ключа. Він також не буде повторно встановити AUTO_INCREMENT
значення таблиці . Натомість видаліть усі записи таблиці та скиньте індексацію назад до 1 за допомогою цього синтаксису sql:
DELETE FROM tableName;
ALTER TABLE tableName AUTO_INCREMENT = 1
Цікавий факт.
Я був впевнений, що TRUNCATE завжди буде краще, але в моєму випадку для db з приблизно 30 таблицями із зовнішніми ключами, заповненими лише декількома рядками, потрібно було тривати 12 секунд, щоб TRUNCATE всі таблиці, на відміну від декількох сотень мілісекунд Зняти рядки. Встановлення автоматичного збільшення збільшує приблизно секунду, але все-таки набагато краще.
Тож я б запропонував спробувати і те й інше, і подивіться, що працює швидше для вашого випадку.
написати запит: урізати 'Ваше_таблиця_імен';
DELETE FROM tableName