PRAGMA foreign_keys = ON;
DROP TABLE IF EXISTS t5;
DROP TABLE IF EXISTS t4;
DROP TABLE IF EXISTS t3;
DROP TABLE IF EXISTS t2;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (
key TEXT PRIMARY KEY NOT NULL,
name TEXT NOT NULL UNIQUE
);
INSERT INTO t1 (key, name) VALUES ('t1_key_1', 't1_name_1');
INSERT INTO t1 (key, name) VALUES ('t1_key_2', 't1_name_2');
CREATE TABLE t2 (
no INTEGER PRIMARY KEY AUTOINCREMENT,
t1_key1 TEXT NOT NULL,
t1_key2 TEXT NOT NULL,
date TEXT NOT NULL,
rate REAL NOT NULL,
FOREIGN KEY(t1_key1) REFERENCES t1(key) ON DELETE CASCADE,
FOREIGN KEY(t1_key2) REFERENCES t1(key) ON DELETE CASCADE
);
INSERT INTO t2 (t1_key1, t1_key2, date, rate) VALUES ('t1_key_1', 't1_key_1', '2012-01-01', 100);
INSERT INTO t2 (t1_key1, t1_key2, date, rate) VALUES ('t1_key_1', 't1_key_1', '2012-01-02', 200);
INSERT INTO t2 (t1_key1, t1_key2, date, rate) VALUES ('t1_key_1', 't1_key_2', '2012-01-04', 300);
CREATE TABLE t3 (
key TEXT PRIMARY KEY NOT NULL,
t1_key TEXT NOT NULL,
FOREIGN KEY(t1_key) REFERENCES t1(key) ON DELETE CASCADE
);
INSERT INTO t3 (key, t1_key) VALUES ('t3_key_1', 't1_key_1');
INSERT INTO t3 (key, t1_key) VALUES ('t3_key_2', 't1_key_2');
CREATE TABLE t4 (
key TEXT PRIMARY KEY NOT NULL,
name TEXT NOT NULL UNIQUE
);
INSERT INTO t4 (key, name) VALUES ('t4_key_1', 't4_name_1');
INSERT INTO t4 (key, name) VALUES ('t4_key_2', 't4_name_2');
CREATE TABLE t5 (
no INTEGER PRIMARY KEY AUTOINCREMENT,
t3_key TEXT NOT NULL,
t4_key TEXT NOT NULL,
date TEXT NOT NULL,
profit REAL NOT NULL,
FOREIGN KEY(t3_key) REFERENCES t3(key) ON DELETE CASCADE,
FOREIGN KEY(t4_key) REFERENCES t4(key) ON DELETE CASCADE
);
INSERT INTO t5 (t3_key, t4_key, date, profit) VALUES ('t3_key_1', 't4_key_1', '2012-01-01 00:00:01', 1000);
INSERT INTO t5 (t3_key, t4_key, date, profit) VALUES ('t3_key_1', 't4_key_1', '2012-01-03 00:00:02', 2000);
INSERT INTO t5 (t3_key, t4_key, date, profit) VALUES ('t3_key_2', 't4_key_2', '2012-01-04 00:00:03', 3000);
INSERT INTO t5 (t3_key, t4_key, date, profit) VALUES ('t3_key_2', 't4_key_2', '2012-02-24 00:00:04', 4000);
INSERT INTO t5 (t3_key, t4_key, date, profit) VALUES ('t3_key_2', 't4_key_1', '2011-01-24 00:00:05', 4000);
UFJBR01BIGZvcmVpZ25fa2V5cyA9IE9OOwpEUk9QIFRBQkxFIElGIEVYSVNUUyB0NTsKRFJPUCBUQUJMRSBJRiBFWElTVFMgdDQ7CkRST1AgVEFCTEUgSUYgRVhJU1RTIHQzOwpEUk9QIFRBQkxFIElGIEVYSVNUUyB0MjsKRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CgpDUkVBVEUgVEFCTEUgdDEgKAogICAga2V5IFRFWFQgUFJJTUFSWSBLRVkgTk9UIE5VTEwsCgluYW1lIFRFWFQgTk9UIE5VTEwgVU5JUVVFCik7CklOU0VSVCBJTlRPIHQxIChrZXksIG5hbWUpIFZBTFVFUyAoJ3QxX2tleV8xJywgJ3QxX25hbWVfMScpOwpJTlNFUlQgSU5UTyB0MSAoa2V5LCBuYW1lKSBWQUxVRVMgKCd0MV9rZXlfMicsICd0MV9uYW1lXzInKTsKCkNSRUFURSBUQUJMRSB0MiAoCglubyBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIAoJdDFfa2V5MSBURVhUIE5PVCBOVUxMLAoJdDFfa2V5MiBURVhUIE5PVCBOVUxMLAoJZGF0ZSBURVhUIE5PVCBOVUxMLAoJcmF0ZSBSRUFMIE5PVCBOVUxMLAoJRk9SRUlHTiBLRVkodDFfa2V5MSkgUkVGRVJFTkNFUyB0MShrZXkpIE9OIERFTEVURSBDQVNDQURFLAoJRk9SRUlHTiBLRVkodDFfa2V5MikgUkVGRVJFTkNFUyB0MShrZXkpIE9OIERFTEVURSBDQVNDQURFCik7CklOU0VSVCBJTlRPIHQyICh0MV9rZXkxLCB0MV9rZXkyLCBkYXRlLCByYXRlKSBWQUxVRVMgKCd0MV9rZXlfMScsICd0MV9rZXlfMScsICcyMDEyLTAxLTAxJywgMTAwKTsKSU5TRVJUIElOVE8gdDIgKHQxX2tleTEsIHQxX2tleTIsIGRhdGUsIHJhdGUpIFZBTFVFUyAoJ3QxX2tleV8xJywgJ3QxX2tleV8xJywgJzIwMTItMDEtMDInLCAyMDApOwpJTlNFUlQgSU5UTyB0MiAodDFfa2V5MSwgdDFfa2V5MiwgZGF0ZSwgcmF0ZSkgVkFMVUVTICgndDFfa2V5XzEnLCAndDFfa2V5XzInLCAnMjAxMi0wMS0wNCcsIDMwMCk7CgpDUkVBVEUgVEFCTEUgdDMgKAoJa2V5IFRFWFQgUFJJTUFSWSBLRVkgTk9UIE5VTEwsCgl0MV9rZXkgVEVYVCBOT1QgTlVMTCwKCUZPUkVJR04gS0VZKHQxX2tleSkgUkVGRVJFTkNFUyB0MShrZXkpIE9OIERFTEVURSBDQVNDQURFCik7CklOU0VSVCBJTlRPIHQzIChrZXksIHQxX2tleSkgVkFMVUVTICgndDNfa2V5XzEnLCAndDFfa2V5XzEnKTsKSU5TRVJUIElOVE8gdDMgKGtleSwgdDFfa2V5KSBWQUxVRVMgKCd0M19rZXlfMicsICd0MV9rZXlfMicpOwoKQ1JFQVRFIFRBQkxFIHQ0ICgKCWtleSBURVhUIFBSSU1BUlkgS0VZIE5PVCBOVUxMLAoJbmFtZSBURVhUIE5PVCBOVUxMIFVOSVFVRQopOwpJTlNFUlQgSU5UTyB0NCAoa2V5LCBuYW1lKSBWQUxVRVMgKCd0NF9rZXlfMScsICd0NF9uYW1lXzEnKTsKSU5TRVJUIElOVE8gdDQgKGtleSwgbmFtZSkgVkFMVUVTICgndDRfa2V5XzInLCAndDRfbmFtZV8yJyk7CgpDUkVBVEUgVEFCTEUgdDUgKAoJbm8gSU5URUdFUiBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5ULCAKCXQzX2tleSBURVhUIE5PVCBOVUxMLAoJdDRfa2V5IFRFWFQgTk9UIE5VTEwsCglkYXRlIFRFWFQgTk9UIE5VTEwsCglwcm9maXQgUkVBTCBOT1QgTlVMTCwKCUZPUkVJR04gS0VZKHQzX2tleSkgUkVGRVJFTkNFUyB0MyhrZXkpIE9OIERFTEVURSBDQVNDQURFLAoJRk9SRUlHTiBLRVkodDRfa2V5KSBSRUZFUkVOQ0VTIHQ0KGtleSkgT04gREVMRVRFIENBU0NBREUKKTsKSU5TRVJUIElOVE8gdDUgKHQzX2tleSwgdDRfa2V5LCBkYXRlLCBwcm9maXQpIFZBTFVFUyAoJ3QzX2tleV8xJywgJ3Q0X2tleV8xJywgJzIwMTItMDEtMDEgMDA6MDA6MDEnLCAxMDAwKTsKSU5TRVJUIElOVE8gdDUgKHQzX2tleSwgdDRfa2V5LCBkYXRlLCBwcm9maXQpIFZBTFVFUyAoJ3QzX2tleV8xJywgJ3Q0X2tleV8xJywgJzIwMTItMDEtMDMgMDA6MDA6MDInLCAyMDAwKTsKSU5TRVJUIElOVE8gdDUgKHQzX2tleSwgdDRfa2V5LCBkYXRlLCBwcm9maXQpIFZBTFVFUyAoJ3QzX2tleV8yJywgJ3Q0X2tleV8yJywgJzIwMTItMDEtMDQgMDA6MDA6MDMnLCAzMDAwKTsKSU5TRVJUIElOVE8gdDUgKHQzX2tleSwgdDRfa2V5LCBkYXRlLCBwcm9maXQpIFZBTFVFUyAoJ3QzX2tleV8yJywgJ3Q0X2tleV8yJywgJzIwMTItMDItMjQgMDA6MDA6MDQnLCA0MDAwKTsKSU5TRVJUIElOVE8gdDUgKHQzX2tleSwgdDRfa2V5LCBkYXRlLCBwcm9maXQpIFZBTFVFUyAoJ3QzX2tleV8yJywgJ3Q0X2tleV8xJywgJzIwMTEtMDEtMjQgMDA6MDA6MDUnLCA0MDAwKTsK