Php 我可以从现有sql表创建表定义吗?

Php 我可以从现有sql表创建表定义吗?,php,mysql,sql,Php,Mysql,Sql,有没有办法从mysql中先前创建的表自动创建表定义 在通过实际主机创建数据库之前,我使用MAMP编写和测试网站,并使用localhost处理、纠正错误和调整数据库。虽然任务并不繁重,但我最终还是花了大量时间重新创建表定义 如果我在搜索中使用了不好的关键词,我表示歉意,但每次我寻找答案时,我都会被发送到付费产品,而我更愿意参与其中并编写一些代码 主要通过php和mysql管理员工作,您可以使用CTAS(CREATETABLE As Select)语句轻松完成字段定义,但不会复制键、索引等 crea

有没有办法从mysql中先前创建的表自动创建表定义

在通过实际主机创建数据库之前,我使用MAMP编写和测试网站,并使用localhost处理、纠正错误和调整数据库。虽然任务并不繁重,但我最终还是花了大量时间重新创建表定义

如果我在搜索中使用了不好的关键词,我表示歉意,但每次我寻找答案时,我都会被发送到付费产品,而我更愿意参与其中并编写一些代码


主要通过php和mysql管理员工作,您可以使用CTAS(CREATETABLE As Select)语句轻松完成字段定义,但不会复制键、索引等

create table YourNewTable as
select * from YourExistingTable
或者,如果只需要结构而不需要数据:

create table YourNewTable as
select * from YourExistingTable where false
-编辑-

再想一想,再次阅读您的问题,您可能正在寻找SHOW CREATE语句:

SHOW CREATE TABLE YourExistingTable
这将输出创建表所需的语句,因此您可以轻松地在主机上执行该语句。通过这种方式,您可以相当轻松地将表结构从本地环境复制到主机


安装像PHPMyAdmin这样的工具可能是值得的。它将对执行查询和执行各种管理任务有很大帮助。如果您喜欢数据,甚至可以导出整个数据库结构。

要在Sql server中创建表而不使用Create table语句,请执行以下操作:

Select * into NewTable from oldTable where 1=0

--其中1=0不会复制数据

我认为您正在搜索以下内容:

MySQL提供了两种基于另一个表创建表的方法:

  • 创建表格。。。SELECT创建一个表,并根据任意SELECT语句返回的结果集填充该表。在这种情况下,, “其他表”是由 选择

  • 创建表格。。。LIKE使用另一个现有表的定义创建空表

创建表的结果。。。LIKE与使用CREATE TABLE的结果不同。。。 创建一个空表。下列任一语句都将创建一个空 表t的副本:

mysql> CREATE TABLE copy1 SELECT * FROM t WHERE 0;
mysql> CREATE TABLE copy2 LIKE t;
但是,结果副本保留的信息量与原件不同 表结构:

mysql> SHOW CREATE TABLE copy1\G;
*************************** 1. row ***************************
Table: copy1
Create Table: CREATE TABLE `copy1` (
`i` int(11) NOT NULL default ‘0’
) ENGINE=MyISAM DEFAULT CHARSET=latin1

创建表。。。SELECT语句复制列名和数据 从原始表中键入,但不保留主键 索引信息或自动增量列属性信息。 新表还使用默认的存储引擎,而不是 表t使用的存储引擎。使用CREATE TABLE创建的副本 ... LIKE没有这些问题


ref:

使用phpMyAdmin非常简单。您可以简单地导出表并选择导出结构的选项。我敢肯定,当您使用mysql管理员导出时,您也应该能够这样做
sql server
标记是关于sql server的,它不是mysql。这样行吗?医生说:@GolezTrol我已经回答了sql server标签的问题。
mysql> SHOW CREATE TABLE copy1\G;
*************************** 1. row ***************************
Table: copy1
Create Table: CREATE TABLE `copy1` (
`i` int(11) NOT NULL default ‘0’
) ENGINE=MyISAM DEFAULT CHARSET=latin1
mysql> SHOW CREATE TABLE copy2\G;
*************************** 1. row ***************************
Table: copy2
Create Table: CREATE TABLE `copy2` (
`i` int(11) NOT NULL auto_increment,
PRIMARY KEY (`i`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1