mysql复制表结构sql语句
发表于:2019-08-02 15:16:19浏览:53次
#### 将 user 表结构复制到 新表 new_user
```sql
CREATE TABLE IF NOT EXISTS `new_user` (LIKE `user`);
```
------------
#### 第二种方式复制
```sql
SHOW CREATE TABLE `user` -- 显示表结构的sql语句
```
可以得到结果:
| Table | Create Table |
| ------------ | ------------ |
| table | CREATE TABLE \`user\` ( \`uid\` int(11 ... |
将结果 [ Create Table ]列 内容复制出来,修改表名
```sql
CREATE TABLE `new_user` ( -- 将 `user`表 修改为 `new_user`表
`uid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
具体php代码
```php
$old_table = 'user';
$new_table = 'new_user';
// 表不存在,创建
$table_info = $db_ext->query("SHOW CREATE TABLE `{$old_table}`")->fetch_assoc();
if(empty($table_info)) {
echo "表 {$old_table} 不存在,请检查数据库\n";
exit;
}
$create_sql = $table_info['Create Table'];
$create_sql = str_replace("CREATE TABLE `{$old_table}`", "CREATE TABLE `{$new_table}`", $create_sql);
$result = $db_ext->query($create_sql);
if($result) {
echo "# 建表 " . $my_table . " => success\n";
}else{
echo "# 建表 " . $my_table . " => fail\n";
var_dump($create_sql);exit;
}
```

