-- @block -- Create tables -- Create SUB table CREATE TABLE sub ( adsh CHAR(20) PRIMARY KEY NOT NULL, -- Accession number, primary key cik BIGINT NOT NULL, -- Central Index Key (CIK) name VARCHAR(150) NOT NULL, -- Name of registrant sic INTEGER, -- Standard Industrial Classification (SIC) countryba CHAR(2) NOT NULL, -- Country of business address (ISO 3166-1) stprba CHAR(2), -- State/Province of business address (if applicable) cityba VARCHAR(30) NOT NULL, -- City of business address zipba VARCHAR(10), -- Zip code of business address bas1 VARCHAR(40), -- First line of business address bas2 VARCHAR(40), -- Second line of business address baph VARCHAR(20), -- Phone number of business address countryma CHAR(2), -- Country of mailing address (ISO 3166-1) stprma CHAR(2), -- State/Province of mailing address (if applicable) cityma VARCHAR(30), -- City of mailing address zipma VARCHAR(10), -- Zip code of mailing address mas1 VARCHAR(40), -- First line of mailing address mas2 VARCHAR(40), -- Second line of mailing address countryinc CHAR(3), -- Country of incorporation stprinc CHAR(2), -- State/Province of incorporation (if applicable) ein CHAR(10), -- Employer Identification Number former VARCHAR(150), -- Most recent former name changed CHAR(8), -- Date of change from former name afs CHAR(5), -- Filer Status with SEC wksi BOOLEAN NOT NULL, -- Well Known Seasoned Issuer (WKSI) fye CHAR(4) NOT NULL, -- Fiscal Year End Date (format: mmdd) form VARCHAR(10) NOT NULL, -- Submission type (Form) period CHAR(8) NOT NULL, -- Balance Sheet Date (format: yyyymmdd) fy INTEGER NOT NULL, -- Fiscal Year focus (Year) fp CHAR(2) NOT NULL, -- Fiscal Period focus (e.g., FY, Q1) filed CHAR(8) NOT NULL, -- Date of filing (format: yyyymmdd) accepted TIMESTAMP NOT NULL, -- Acceptance date and time by SEC prevrpt BOOLEAN NOT NULL, -- Indicates if the submission was amended detail BOOLEAN NOT NULL, -- Indicates detail in footnotes and schedules instance VARCHAR(32) NOT NULL, -- Name of submitted XBRL Instance Document nciks INTEGER NOT NULL, -- Number of CIKs included in submission aciks VARCHAR(120) -- Additional CIKs included in submission ); -- Create TAG table CREATE TABLE tag ( tag VARCHAR(256) NOT NULL, -- Unique identifier for a tag version CHAR(20) NOT NULL, -- Taxonomy version if standard, else adsh custom BOOLEAN NOT NULL, -- 1 if custom tag, 0 if standard tag abstract BOOLEAN NOT NULL, -- 1 if abstract (not numeric), 0 if numeric datatype VARCHAR(20), -- Data type (if numeric) iord CHAR(1), -- "I" for point-in-time, "D" for duration crdr CHAR(1), -- Credit/ Debit nature, if monetary tlabel VARCHAR(512), -- Label text doc TEXT, -- Tag definition/documentation PRIMARY KEY (tag, version) ); -- Create NUM table CREATE TABLE num ( adsh CHAR(20) NOT NULL, -- Accession number tag VARCHAR(256) NOT NULL, -- Tag name version CHAR(20) NOT NULL, -- Taxonomy version coreg VARCHAR(256) NOT NULL, -- Coregistrant ID ddate CHAR(8) NOT NULL, -- Period end date (format: yyyymmdd) qtrs INTEGER NOT NULL, -- Number of quarters (0 for point-in-time values) uom VARCHAR(20) NOT NULL, -- Unit of Measure value NUMERIC(28,4), -- Value (up to 4 decimal places) footnote VARCHAR(512), -- Footnote (superscripted text) PRIMARY KEY (adsh, tag, version, coreg, ddate, qtrs, uom), FOREIGN KEY (adsh) REFERENCES sub(adsh), FOREIGN KEY (tag, version) REFERENCES tag(tag, version) ); -- Create PRE table CREATE TABLE pre ( adsh CHAR(20) NOT NULL, -- Accession number report INTEGER NOT NULL, -- Sequence number of report line INTEGER NOT NULL, -- Sequence number of line in the report stmt CHAR(2) NOT NULL, -- Statement type (BS, IS, CF, EQ, CI, etc.) inpth BOOLEAN NOT NULL, -- Presented parenthetically or not rfile CHAR(1) NOT NULL, -- File type ("H" or "X") tag VARCHAR(256) NOT NULL, -- Tag name version CHAR(20) NOT NULL, -- Taxonomy version plabel VARCHAR(512) NOT NULL, -- Preferred label for presentation PRIMARY KEY (adsh, report, line), FOREIGN KEY (adsh) REFERENCES sub(adsh), FOREIGN KEY (tag, version) REFERENCES tag(tag, version) ); -- @end -- @block -- Reset db SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS num; DROP TABLE IF EXISTS pre; DROP TABLE IF EXISTS sub; DROP TABLE IF EXISTS tag; SET FOREIGN_KEY_CHECKS = 1; -- @end\ -- baph is 12 in new 20 in old -- doc is 2048 in new unlimitted in old -- countrinc was set as cant be null, but there are some null values -- iord was set as cant be null, but there are some null values -- there is a duplicated primary key in 2009q3tagline5014 -- there is a duplicated primary key in 2009q3tagline9980 its not the same case but same string so causes problem