Как очистить базу (прибить все таблицы)?

sTar

Guest
Как очистить базу (прибить все таблицы)?

Станно но в поиске не нашел, находил только очистку таблицы
 

sTar

Guest
а нету аналога
TRUNCATE для таблиц?

Получается надо делать
drop a потом create
?
 

tony2001

TeaM PHPClub
нет.
если у тебя возникла необходимость на лету дропать все таблицы - делаешь что-то не то.
 

sTar

Guest
А к какому уровню привилегий относится TRUNCATE?
 

ForJest

- свежая кровь
Добавить перед каждым CREATE
DROP TABLE IF EXISTS tbl;
CREATE TABLE tbl (...

Или включить соотв опцию в phpMyAdmin при экспорте.
----------- или -----------
1. выбрать с помощью SHOW TABLES таблицы
2. получить значения в PHP
3. сформировать запросы на DROP
----------- или -----------
...
 

sTar

Guest
DROP TABLE IF EXISTS tbl;
Это что значит как только я создам таблицу она дропнется, или как?
 

TuBu

Guest
he-he =)

Это значит, что если таблица существует, то она удалится. Если не делать IF EXISTS, то запрос вернется с ошибкой TABLE NOT EXISTS

А если это какая-то последовательность запросов (например дамп базы), то эта последовательность запросов до конца не отработает. Для этого и ставят IF EXISTS
 

ForJest

- свежая кровь
sTar
это значит, что ты не сказал, что ты хочешь сделать, а считаешь, что тебе нужно удалять таблицы. И я считаю, что тебе это не нужно.
 

sTar

Guest
Я зделал скрипт инсталяции скрипта :) (смешно звучит)

В файлик install.sql есть записи (в каждой строке - 1 запрос на создание таблицы)

Я хочу предусмотреть возможность ПЕРЕинсталяции, если происходит ошибка в строке n - таблица не создается и скрипт остонавливается (происходит ошибка инсталяции).

Если ошибка происходит мне надо чтобы все таблицы созданые до этого удалились (но не сама база). После очистки базы, пользователь должен будет только исправить ошибку в строке n (ему не прийдется лезть в базу очисшать ее ручками, а потом создавать наново)

Идея скрипта - install.php в phpbb-форуме
 

ForJest

- свежая кровь
sTar
поэтому-то ты и должен использовать решение, которое я тебе и предложил. Ибо оно будет в итоге делать именно то, что тебе нужно, а имеено удалять таблицы, если они существуют непостредственно перед моментом их создания.
 
Сверху