【发布时间】:2017-10-21 21:17:24
【问题描述】:
我找到了一种方法来查找两个数据库之间缺失的表,以及相交表中缺失的列。我可以获得缺失表的“create”语法,但是如何为缺失的列生成“alter”语法?
是否有类似SHOW CREATE TABLE $table 的内容?
@编辑
我明白了:
CREATE TABLE `table` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(225) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
)
SHOW CREATE TABLE $table
-> 我发现第二个数据库的“表”缺少“名称”列。如何“解析”(?)此创建以生成更改以将列“名称”添加到第二个数据库的表?
【问题讨论】:
-
它被描述为in the manual。如果您在理解手册中描述的内容方面需要帮助,请更新您的问题。相关位是
ALTER TABLE tbl_name [ADD | ALTER | CHANGE] col_name。 -
我需要生成这个变更,而不是自己编写。我对名称旁边的列一无所知,我需要生成适当的更改以包含键、字段类型等。
-
好的,但是
SHOW CREATE TABLE不也输出列的相关信息吗?我不完全确定您面临的问题是什么。但这可能是我,误解了你的问题。也许您可以通过一个示例来扩展您的问题,说明您现在是如何生成语法的,并详细说明您在列部分中遇到的问题。 -
好的,我得到:CREATE TABLE
table(idint(11) unsigned NOT NULL AUTO_INCREMENT,namevarchar(225) NOT NULL DEFAULT '', PRIMARY KEY (@987654331 @) )然后找出第二个数据库的“表”错过了“名称”。如何将其变成“alter”以添加“name”? -
@DecentDabbler 完成
标签: php mysql create-table alter describe