通常我们提到数据库表结构的时候,比较关心的几个属性:
字段名称、类型、长度、是否主键、是否自增、是否为空、默认值、备注。
那么,使用SQL语句获取这些属性,在各主流数据库下是什么样的呢?
MySQL数据库
作为时下最流行的数据库,MySQL的获取SQL是最简单的。
一般我们用下面一行语句就能搞定:
SHOW FULL COLUMNS FROM xxx;
当然,也可以用MySQL自带的数据库information_schema中的表,例如:columns等查询更全的信息。
PostgreSQL数据库
使用其两个最重要的Schema(information_schema、pg_catalog)下表,进行关联查询,获取常用属性。
SELECT d.column_name AS "Field", d.udt_name AS "Type", COALESCE(d.character_maximum_length, d.numeric_precision, d.datetime_precision) AS "Length",
CASE WHEN t.conname IS NOT NULL THEN 'PRI' ELSE '' END AS "Key",
CASE WHEN s.extra IS NOT NULL THEN 'auto_increment' ELSE '' END "Extra",
d.is_nullable AS "Null", f.adsrc AS "Default", col_description(a.attrelid, a.attnum) AS "Comment"
FROM information_schema.columns d, pg_class c, pg_attribute a
LEFT JOIN pg_constraint t ON (a.a