Calender
Sun Mon Tue Wed Thu Fri Sat
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
広告
SEARCH

SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
LINKS
PROFILE
OTHERS
SKYPE
PC: skype.jojo.jp
chat
iPad: iphone.jojo.jp
chat call
THANKS



本日:
昨日:
多言語
広告
 ▼▲ 作業日報 ▼△
    What's under the hood?
<< less,viの文字化け対策(debian) | main | 【Linux】Debian 4.0r5 >>
【PostgreSQL】SQLでフィールド定義の取得
PostgreSQLでテーブルの項目リスト、フィールドリストを取得する方法
フィールド定義を取得:
SELECT a.relname,relid,attnum,attname,atttypid,atttypmod,b.conkey
FROM pg_attribute,
(SELECT relid, relname FROM pg_stat_user_tables) AS a
LEFT JOIN pg_constraint AS b ON (conrelid=relid) AND (contype='p')
WHERE (a.relid = attrelid) AND (attnum > 0)
ORDER BY relid, attnum ;
※継承等用いている場合はスキーマを指定する必要があります
--スキーマ/テーブルを指定したい場合
SELECT a.relname,relid,attnum,attname,atttypid,atttypmod,b.conkey
FROM pg_attribute,
(SELECT relid, relname FROM pg_stat_user_tables WHERE schemaname='xxxスキーマxxx' and relname='xxテーブル名xx') AS a
LEFT JOIN pg_constraint AS b ON (conrelid=relid) AND (contype='p')
WHERE (a.relid = attrelid) AND (attnum > 0)
ORDER BY relid, attnum ;

フィールド説 明
relnameテーブル名称
attnum項目順
attname項目名
relidテーブルID
atttypidタイプ
23....長整数型 integer
701...倍精度浮動小数点_double precision
790...通貨 money
1043..文字列(atttypmodは+4)
1114..日付_timestamp
atttypmod項目幅
conkey主キーの位置
| Linux | 19:21 | comments(0) | trackbacks(0) |









http://blog.jojo.jp/trackback/1126660