今天收到一个邮件,说是XXX要扩容,其实就是字段加长。数据服务天然是要排查一番。想一想greenplum应该会有元数据或数据字典。假设这个扩容字段有关键字key,那么就能够用下面的SQL把全部包括key的字段名都取出来,排查就容易了。从这个事情能够看出字段命名规范对后期维护的重要性。sql
SELECT c.nspname ,b.relname ,a.attname ,a.data_type FROM (SELECT a.attrelid ,a.attname ,pg_catalog.format_type(a.atttypid, a.atttypmod) AS data_type FROM pg_catalog.pg_attribute a WHERE a.attnum > 0 AND NOT a.attisdropped) a ,pg_class b ,pg_namespace c WHERE lower(attname) LIKE '%key%' AND a.attrelid = b.oid AND b.relnamespace = c.oid ORDER BY c.nspname,b.relname,a.attname;
由于系统彻底规范化很难,因此排查数据字典只是解决大部分问题,其他还要靠经验、记忆和实测。ide