如果不存在,则重命名mysql表,如果不创建新表

时间:2012-11-01 13:47:15

标签: php mysql mysqli

目前我正在尝试使用mysqli创建一个新表。 如果表'default'存在,则将其重命名为当前日期和时间,如果不存在,则创建一个名为default的新表。我从包含当前日期和时间的上一个php页面获取日期和时间,没有/, - , :。 我怎么能用mysqli来做呢?

$bk_time=$_POST['system_clock']."backup";
$conn = new mysqli($db_hostname, $db_username, $db_password);
if (mysqli_connect_errno()) {
  exit('Connect failed: '. mysqli_connect_error());
}
//check default exist
$sql = "SHOW TABLES FROM `descript`.`default`;";
if ($conn->query($sql) === TRUE) {

  $sql. = 'RENAME TABLE `default` TO `$bk_time`';
  echo 'exist';
}
else {
 echo 'not exist ';
 $sql. = 'CREATE TABLE `descript`.`default`';
}
mysqli_autocommit($conn, false);
mysqli_query($conn, $sql);

1 个答案:

答案 0 :(得分:0)

我建议使用存储过程:

  1. 检查表格是否存在
  2. 重命名表格
  3. 第一个类似于以下内容

    IF EXISTS (
    (SELECT * FROM information_schema.TABLES
        WHERE TABLE_SCHEMA = DATABASE()
        AND TABLE_NAME = _tableName))
        THEN SET _result = 0;
    ELSE
        SET _result = 1;
    END IF;