查询表是否存在
使用 SHOW TABLES
SHOW TABLES LIKE '%tbl_tabl%';
结果:
查询 INFORMATION_SCHEMA
// like 匹配
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'test' AND TABLE_NAME like '%tbl%';
// 完全匹配
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA = 'test' AND TABLE_NAME = 'tbl_table';
结果:
不存在就创建
不覆盖创建表
当表存在时就不创建
CREATE TABLE IF NOT EXISTS `table_name` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET = utf8
覆盖创建
不管表是否存在都创建表
// 先删除表
DROP TABLE IF EXISTS `table_name`;
// 再进行创建
CREATE TABLE `table_name` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET = utf8
从模板创建表
如果表不存在那么基于模板创建表结构,不包括索引
CREATE TABLE IF NOT EXISTS `my_table` LIKE `from_tbale`;