在 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
希望对您有所帮助!
我在数据库中创建动态 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
希望对您有所帮助!