我们正在进行数据库迁移,我们在第二个表中查找额外列时面临一个小问题。
第一张表 - employee_data
col a - id
col b - name
col c - age
第二张表 - employee_data_fp
col a - id
col b - name
col c - age
col d - address
col e - phoneNo
我们尝试通过手动添加额外列并插入数据集来合并第一个和第二个表。请帮助编写查询以查找错过的列。 提前谢谢..
答案 0 :(得分:0)
除非您计划使用动态SQL构建查询,否则您不需要查询来查找缺少的列。为了简单起见,为什么不使用SHOW CREATE TABLE
:
SHOW CREATE TABLE table2;
这会将create语句回显到控制台。除了显示列名称外,它还将显示类型,约束,默认值以及一些其他可能有用的内容。
如果您需要一个查询,该查询显示第二个表中唯一未出现在第一个表中的列,请尝试以下操作:
SELECT t2.COLUMN_NAME
FROM
(
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'yourDB' AND
TABLE_NAME = 'table2'
) t2
LEFT JOIN
(
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'yourDB' AND
TABLE_NAME = 'table1'
) t1
ON t2.COLUMN_NAME = t1.COLUMN_NAME
WHERE t1.COLUMN_NAME IS NULL;