เรากำลังใช้เครื่องมือที่ต้องการตารางเฉพาะในฐานข้อมูล DB2 ของเราเพื่อกำหนดคีย์หลัก
มีวิธีการใช้คำสั่งเลือกบนฐานข้อมูลเพื่อดูว่าตารางที่กำหนดมีหนึ่งหรือไม่
ขอบคุณ
เรากำลังใช้เครื่องมือที่ต้องการตารางเฉพาะในฐานข้อมูล DB2 ของเราเพื่อกำหนดคีย์หลัก
มีวิธีการใช้คำสั่งเลือกบนฐานข้อมูลเพื่อดูว่าตารางที่กำหนดมีหนึ่งหรือไม่
ขอบคุณ
คำตอบ:
คำเตือน: ฉันไม่รู้จัก DB2
ฉันเพียงแค่ googled เหล่านี้ด้วย "คำจำกัดความตาราง db2"
SELECT *
FROM SYSIBM.SYSTABLES TAB,SYSIBM.SYSCOLUMNS COL
WHERE TAB.CREATOR = COL.TBCREATOR
AND TAB.CREATOR = 'xxxx'
AND TAB.NAME = 'xxxxxxxxxxxxx'
AND TAB.NAME = COL.TBNAME
AND TAB.TYPE = 'V' ( OR 'T' )
ORDER BY 1,2;
SELECT * FROM syscat.tabconst WHERE type = 'P';
คุณสามารถทำ a db2look
ซึ่งจะให้ ddls สำหรับตาราง
db2look -d db_name -e -x -z schema_name -t table_name
นี่อาจเป็นตัวเลือกที่ง่ายที่สุดเนื่องจากคีย์หลักได้รับการสนับสนุนโดยดัชนีที่ตรงกัน:
select COLNAMES from SYSIBM.SYSINDEXES where tbname = 'TABLE' and uniquerule = 'P';
คุณสามารถสืบค้นตารางแคตตาล็อกคอลัมน์:
select NAME from SYSIBM.SYSCOLUMNS where tbname = 'TABLE' and keyseq > 0 order by keyseq;