在 MySQL 中动态检查和创建 Table

Dynamically Check and Create Table in MySQL

我在数据库中创建动态 table 时遇到问题。如果 table 已存在于数据库中,则不应创建新的。

if( mysqli_num_rows(mysqli_query("SHOW TABLES LIKE abc")) == 1){
    echo "Already Exit";    
} else {
    //echo "not exit";
    $sql="CREATE TABLE `decoration`.`newtable` (`id` INT NOT NULL AUTO_INCREMENT ,`company_id` VARCHAR( 20 ) NOT NULL ,`list_name` VARCHAR( 50 ) NOT NULL ,`created` INT NOT NULL ,`modified` INT NOT NULL ,`status` INT NOT NULL ,PRIMARY KEY (  `id` )) ENGINE = INNODB";
    if ($con->mysqli_query($sql)){
        echo "created";
    } else {
        echo "not created";
    }
}

您可以使用以下查询

CREATE TABLE IF NOT EXISTS `schema`.`Employee` (
`idEmployee` VARCHAR(45) NOT NULL ,
`Name` VARCHAR(255) NULL ,
`idAddresses` VARCHAR(45) NULL ,
PRIMARY KEY (`idEmployee`) ,
CONSTRAINT `fkEmployee_Addresses`
FOREIGN KEY `fkEmployee_Addresses` (`idAddresses`)
REFERENCES `schema`.`Addresses` (`idAddresses`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin

IF NOT EXISTS 将检查 table 是否存在,如果 table 存在于数据库中,则不会创建新的。

参考:http://dev.mysql.com/doc/refman/5.7/en/create-table.html

希望对您有所帮助!