drop/create table
4 отговора
90 прегледа
drop/create table
Искам да направя следното:
Трябва да проверя дали една таблица в MySQL съществува. Ако съществува - да я drop-на, след това да я създам отново и да направя един insert. Справям се със създаването на таблицата и вмъкването на стойности, но незнам как първо да проверя дали таблицата съществува.
Някой може би ще предложи веднъж да създам таблицата и следтова само да правя update, но аз искам да е по този начин - така един и същ скрипт ще може да създава и да обновява съдържанието на таблицата.
Има една функция mysql_list_tables но не съм много сигурен дали ще ми свърши работа.
Някакви предложения?
Трябва да проверя дали една таблица в MySQL съществува. Ако съществува - да я drop-на, след това да я създам отново и да направя един insert. Справям се със създаването на таблицата и вмъкването на стойности, но незнам как първо да проверя дали таблицата съществува.
Някой може би ще предложи веднъж да създам таблицата и следтова само да правя update, но аз искам да е по този начин - така един и същ скрипт ще може да създава и да обновява съдържанието на таблицата.
Има една функция mysql_list_tables но не съм много сигурен дали ще ми свърши работа.
Някакви предложения?
Re: drop/create table
ima edna syvsem prosta SQL funkciq:
DROP TABLE IF EXIST tbl_name
I want to walk into the lights
DROP TABLE IF EXIST tbl_name
I want to walk into the lights
Re: drop/create table
Можеш да използваш това:
DROP TABLE IF EXISTS table_name
Иначе, най-добрият начин за DROP и CREATE едно след друго е:
TRUNCATE TABLE table_name
Лошото е, че във втория случай не можеш да сложиш IF EXISTS.
За твоя случай май най-добро е да използваш първото...след това CREATE-ваш...и след това INSERT-ваш...Така няма никакви проверки в PHP-то.
"Да живееш - значи да се променяш." - Анатол Франс
DROP TABLE IF EXISTS table_name
Иначе, най-добрият начин за DROP и CREATE едно след друго е:
TRUNCATE TABLE table_name
Лошото е, че във втория случай не можеш да сложиш IF EXISTS.
За твоя случай май най-добро е да използваш първото...след това CREATE-ваш...и след това INSERT-ваш...Така няма никакви проверки в PHP-то.
"Да живееш - значи да се променяш." - Анатол Франс
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
Обаче що ми се струва, че на теб ти трябва някаква временна таблица, в която разни скриптове да пишат само за малко?
Тогава решението е значително по-елегантно:
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 на
10x
Много ви благодаря за помоща. Използвам drop table if exists table_name
Функцията си я има в документацията и е много удобна, само, че аз я търсих в документацията на РНР, а тя била в MySQL :)))
Функцията си я има в документацията и е много удобна, само, че аз я търсих в документацията на РНР, а тя била в MySQL :)))