我有两个sql文件(t1.sql和t2.sql)。两个sql文件是不同的版本,两个文件包含创建查询。我想比较两个sql文件查询,以检查查询结构是否已更改。
例如: -
t1.sql file: CREATE TABLE `static_ids` ( `access_id` int(11) unsigned NOT NULL DEFAULT '0', `group_id` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`access_id`,`group_id`) ) ENGINE=MyISAM; t2.sql file: CREATE TABLE `static_ids` ( `access_id` int(11) unsigned NOT NULL DEFAULT '0', `group_id` int(11) unsigned NOT NULL DEFAULT '0', `group_name` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`access_id`,`group_id`) ) ENGINE=MyISAM;
在此示例中,表static_ids
结构的创建查询不同。
请通过PHP比较两个sql文件查询。提前谢谢。
答案 0 :(得分:1)
要仅使用PHP可靠地检查结构是否相同,您基本上必须重写MySQL解析器。例如,它必须理解
id int;
相当于
`id` int(11) signed DEFAULT NULL;
更简单的解决方案是在空白MySQL数据库上运行CREATE TABLE
命令,然后执行DESCRIBE table_name to a get a list of all the columns that were created as. You can then run through the list of columns for the two tables in a PHP
for循环并比较它们。