MySQL 标识符大小写 sensitivify 和 INFORMATION_SCHEMA
将数据从 mysql 数据库泵入 postgresql 数据库。MySQL 数据库包含同名的表,只有字母大小写不同。例如,这两个表是不同的:
select * from `Adatlap`
select * from `adatlap`
从 information_schema 查询数据库结构,但在本例中它失败了。例如,constraints 和 columns 以全小写标识符显示在 information_schema 中:
SELECT t.constraint_type, t.table_schema, t.table_name, k.column_name
FROM information_schema.table_constraints t
JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
AND t.table_schema='main'
AND t.table_name='adatlap'
结果:
constraint_type|table_schema |table_name|column_name|
---------------+--------------+----------+-----------+
PRIMARY KEY |main |adatlap |id |
PRIMARY KEY |main |adatlap |id |
如何选择约束和列名称?是否有其他的系统目录可用于此目的?区分大小写的内容?