MySql-このように作成されたテーブルが存在しないん丸?
質問
こちらの質問:
現在のクエリはこのようなもの:
$sql1 = "TRUNCATE TABLE fubar";
$sql2 = "CREATE TEMPORARY TABLE IF NOT EXISTS fubar SELECT id, name FROM barfu";
初めての方法を含むことがでエラーメッセージの切り詰めてのテーブルは存在しない。
私だけのオプションの CREATE TABLE
, の TRUNCATE TABLE
, そのテーブルは?(3別のクエリ)
そのた:
していくそうとしていることを以下の場合には可能なMySqlではなくブロックsql:
CREATE TABLE fubar IF NOT EXISTS ELSE TRUNCATE TABLE fubar
い走り切り詰め前には別途、このように作成されたテーブル、テーブルは存在しない、または、エラーメッセージを表示します。ようにしていをするとエラーメッセージなの追加あります。
このコードで実行することはクリアしました。
解決
shmuel613れるように更新のオリジナルの問題ではなく返信.であれば単位を含む完全な問題というよりもむしろれが広がりました。
Benの回答が妥当である、というあなたにないます。下の表されていない場合にのみ な 存在しない。
するのである必要が複数記述です。のいずれかを条件付をその後の移植:
- "をテーブルが存在しないfubar(int id,name varchar(80))
- TRUNCATE TABLE fubar
- 挿入fubar SELECT*from barfu
またはここからと再現
- 落下表の場が存在するfubar
- "をテーブルfubar SELECT id,nameからbarfu
純SQLの方には二つのクラスのソリューション。いのります。
(保存されている手続き動きをタイムリーかつ詳細に。のようなもの:TruncateAndPopulate(fubar)が合う時間によって、コードを書くためのTruncateAndPopulateまで過ごす時間がかかりま用のSQLます。)
他のヒント
なにができるのは、切り詰め後に作成でない場合が存在する'.それは常に存---常に空です。
CREATE TABLE fubar IF NOT EXISTS
TRUNCATE TABLE fubar
の実施にクエリがテーブルが存在します。
使用量: call Edit_table(database-name,table-name,query-string);
- 手順確認のためのテーブル名の下でのデータベースのもと、これまでどおり実行クエリ文字列の場合世界最大の国際人権ngoです。以下の手順:
DELIMITER $$ DROP PROCEDURE IF EXISTS `Edit_table` $$ CREATE PROCEDURE `Edit_table` (in_db_nm varchar(20), in_tbl_nm varchar(20), in_your_query varchar(200)) DETERMINISTIC BEGIN DECLARE var_table_count INT; select count(*) INTO @var_table_count from information_schema.TABLES where TABLE_NAME=in_tbl_nm and TABLE_SCHEMA=in_db_nm; IF (@var_table_count > 0) THEN SET @in_your_query = in_your_query; #SELECT @in_your_query; PREPARE my_query FROM @in_your_query; EXECUTE my_query; ELSE select "Table Not Found"; END IF; END $$ DELIMITER ;
ど:
DROP TABLE IF EXISTS fubar;
CREATE TABLE fubar;
またはもしかしてだいたいので単一クエリー?
OKしています。具体的には、現在のクエリはこのようなもの:
$sql1 = "TRUNCATE TABLE fubar"; $sql2 = "CREATE TEMPORARY TABLE IF NOT EXISTS fubar SELECT id, name FROM barfu";
初めての方法を含むことがでエラーメッセージの切り詰めてのテーブルは存在しない。
私だけのオプションの"テーブルの作成"の"切り詰め表"に記入して、テーブルは?(3別のクエリ)
PS-感謝の対応ですのでぜひご覧下さいませ。
使用している場合は、PHP、 mysql_list_tables ことを確認するにはテーブルが存在する前に切り詰めます。