无法使用“if not exists”创建MySQL表

时间:2012-12-13 20:41:01

标签: mysql perl

这是我的代码:

$STH1000=$DBH->query("CREATE TABLE IF NOT EXISTS '".$dept.$year."' ( `ID` INT( 255 ) NOT NULL AUTO_INCREMENT , `URL` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `ID` )) ") or die "Could not prepare sql statement";

我想要做的就是创建一个表,如果$ dept $ year不存在,但我现在拥有它,它会抛出错误。

我相信有一种创建表的方法是mysql在select上返回错误但是我不知道该怎么做。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:5)

$STH1000=$DBH->query("CREATE TABLE IF NOT EXISTS ".$dept.$year." ( `ID` INT( 255 ) NOT NULL AUTO_INCREMENT , `URL` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `ID` )) ") or die "Could not prepare sql statement";

不得在''中关闭表格名称(但我可以选择在``中关闭。)

答案 1 :(得分:1)

只需将'".$dept.$year."'中的引号移除为".$dept.$year."

即可

您的查询将是这样的

$STH1000=$DBH->query("CREATE TABLE IF NOT EXISTS ".$dept.$year." ( `ID` INT( 255 ) NOT NULL AUTO_INCREMENT , `URL` VARCHAR( 255 ) NOT NULL , PRIMARY KEY ( `ID` )) ") or die "Could not prepare sql statement";