drop/create table

4 отговора 90 прегледа
#1

drop/create table

Искам да направя следното:

Трябва да проверя дали една таблица в MySQL съществува. Ако съществува - да я drop-на, след това да я създам отново и да направя един insert. Справям се със създаването на таблицата и вмъкването на стойности, но незнам как първо да проверя дали таблицата съществува.

Някой може би ще предложи веднъж да създам таблицата и следтова само да правя update, но аз искам да е по този начин - така един и същ скрипт ще може да създава и да обновява съдържанието на таблицата.

Има една функция mysql_list_tables но не съм много сигурен дали ще ми свърши работа.

Някакви предложения?

Отговор
в отговор на burov #2

Re: drop/create table

ima edna syvsem prosta SQL funkciq:
DROP TABLE IF EXIST tbl_name





I want to walk into the lights

Отговор
в отговор на burov #3

Re: drop/create table

Можеш да използваш това:
DROP TABLE IF EXISTS table_name

Иначе, най-добрият начин за DROP и CREATE едно след друго е:
TRUNCATE TABLE table_name

Лошото е, че във втория случай не можеш да сложиш IF EXISTS.

За твоя случай май най-добро е да използваш първото...след това CREATE-ваш...и след това INSERT-ваш...Така няма никакви проверки в PHP-то.

"Да живееш - значи да се променяш." - Анатол Франс
Отговор
в отговор на burov #4

Re: drop/create table

Като директен отговор на въпроса ти виж какво ти е отговорил Dakota


Обаче що ми се струва, че на теб ти трябва някаква временна таблица, в която разни скриптове да пишат само за малко?

Тогава решението е значително по-елегантно:

CREATE TEMPORARY TABLE temp .....;

С което печелиш доста неща.

Временните таблици са специфични за всяка сесия. Т.е. правиш connect правиш временна таблица Gogo и тя е "видна" само за текущия скрипт. В същото време 20 други браузъра отваряйки твоя скрипт могат да направят същото - всеки ще си има собствена таблица Gogo

Дори да я забравиш временната таблица се "самопочиства" т.е. съществува само докато е активна връзката.


За повече информация иди на mysql.online.bg/documentation/mysql/bychapter/manual_Reference.html#CREATE_TABLE

и виж какво пише за Temporary

Иначе можеш:


SHOW TABLES LIKE 'твойта_таблица';

И гледаш колко реда връща 1 - Има 0 - Нема

salle.online.bg/sig

Редактирано от salle на

Отговор
в отговор на salle #5

10x

Много ви благодаря за помоща. Използвам drop table if exists table_name

Функцията си я има в документацията и е много удобна, само, че аз я търсих в документацията на РНР, а тя била в MySQL :)))

Отговор