112 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
		
		
			
		
	
	
			112 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								-- @version 1.00
							 | 
						||
| 
								 | 
							
								--
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								PRAGMA foreign_keys = off;
							 | 
						||
| 
								 | 
							
								BEGIN TRANSACTION;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Table: storage
							 | 
						||
| 
								 | 
							
								DROP TABLE IF EXISTS storage;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE storage (
							 | 
						||
| 
								 | 
							
								    key         TEXT,
							 | 
						||
| 
								 | 
							
								    value       TEXT,
							 | 
						||
| 
								 | 
							
								    last_update TEXT,
							 | 
						||
| 
								 | 
							
								    PRIMARY KEY (
							 | 
						||
| 
								 | 
							
								        key
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Table: storage_orders
							 | 
						||
| 
								 | 
							
								DROP TABLE IF EXISTS storage_orders;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE storage_orders (
							 | 
						||
| 
								 | 
							
								    strategy_hash  TEXT,
							 | 
						||
| 
								 | 
							
								    strategy_index INTEGER,
							 | 
						||
| 
								 | 
							
								    ticket         INTEGER,
							 | 
						||
| 
								 | 
							
								    symbol         TEXT,
							 | 
						||
| 
								 | 
							
								    lot            REAL,
							 | 
						||
| 
								 | 
							
								    type           INTEGER,
							 | 
						||
| 
								 | 
							
								    open_time      TEXT,
							 | 
						||
| 
								 | 
							
								    open_price     REAL,
							 | 
						||
| 
								 | 
							
								    stop_loss      REAL,
							 | 
						||
| 
								 | 
							
								    take_profit    REAL,
							 | 
						||
| 
								 | 
							
								    close_time     TEXT,
							 | 
						||
| 
								 | 
							
								    close_price    REAL,
							 | 
						||
| 
								 | 
							
								    expiration     INTEGER,
							 | 
						||
| 
								 | 
							
								    comment        TEXT,
							 | 
						||
| 
								 | 
							
								    point          REAL,
							 | 
						||
| 
								 | 
							
								    PRIMARY KEY (
							 | 
						||
| 
								 | 
							
								        strategy_hash,
							 | 
						||
| 
								 | 
							
								        strategy_index
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Table: strategies
							 | 
						||
| 
								 | 
							
								DROP TABLE IF EXISTS strategies;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE strategies (
							 | 
						||
| 
								 | 
							
								    id_strategy INTEGER PRIMARY KEY AUTOINCREMENT
							 | 
						||
| 
								 | 
							
								                        NOT NULL,
							 | 
						||
| 
								 | 
							
								    id_group    INTEGER REFERENCES strategy_groups (id_group) ON DELETE CASCADE
							 | 
						||
| 
								 | 
							
								                                                              ON UPDATE CASCADE,
							 | 
						||
| 
								 | 
							
								    hash        TEXT    NOT NULL,
							 | 
						||
| 
								 | 
							
								    params      TEXT    NOT NULL
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Table: strategy_groups
							 | 
						||
| 
								 | 
							
								DROP TABLE IF EXISTS strategy_groups;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CREATE TABLE strategy_groups (
							 | 
						||
| 
								 | 
							
								    id_group    INTEGER PRIMARY KEY AUTOINCREMENT,
							 | 
						||
| 
								 | 
							
								    name        TEXT,
							 | 
						||
| 
								 | 
							
								    from_date   TEXT,
							 | 
						||
| 
								 | 
							
								    to_date     TEXT,
							 | 
						||
| 
								 | 
							
								    create_date TEXT
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Trigger: ins_create_date_null
							 | 
						||
| 
								 | 
							
								DROP TRIGGER IF EXISTS ins_create_date_null;
							 | 
						||
| 
								 | 
							
								CREATE TRIGGER ins_create_date_null
							 | 
						||
| 
								 | 
							
								         AFTER INSERT
							 | 
						||
| 
								 | 
							
								            ON strategy_groups
							 | 
						||
| 
								 | 
							
								          WHEN NEW.create_date IS NULL
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								    UPDATE strategy_groups
							 | 
						||
| 
								 | 
							
								       SET create_date = DATETIME('NOW') 
							 | 
						||
| 
								 | 
							
								     WHERE id_group = NEW.id_group;
							 | 
						||
| 
								 | 
							
								END;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Trigger: ins_storage
							 | 
						||
| 
								 | 
							
								DROP TRIGGER IF EXISTS ins_storage;
							 | 
						||
| 
								 | 
							
								CREATE TRIGGER ins_storage
							 | 
						||
| 
								 | 
							
								         AFTER INSERT
							 | 
						||
| 
								 | 
							
								            ON storage
							 | 
						||
| 
								 | 
							
								          WHEN NEW.last_update IS NULL
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								    UPDATE storage
							 | 
						||
| 
								 | 
							
								       SET last_update = DATETIME('NOW') 
							 | 
						||
| 
								 | 
							
								     WHERE key = NEW.key;
							 | 
						||
| 
								 | 
							
								END;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								-- Trigger: upd_storage
							 | 
						||
| 
								 | 
							
								DROP TRIGGER IF EXISTS upd_storage;
							 | 
						||
| 
								 | 
							
								CREATE TRIGGER upd_storage
							 | 
						||
| 
								 | 
							
								        BEFORE UPDATE
							 | 
						||
| 
								 | 
							
								            ON storage
							 | 
						||
| 
								 | 
							
								          WHEN NEW.last_update IS NULL
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								    UPDATE storage
							 | 
						||
| 
								 | 
							
								       SET last_update = DATETIME('NOW') 
							 | 
						||
| 
								 | 
							
								     WHERE key = NEW.key;
							 | 
						||
| 
								 | 
							
								END;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								COMMIT TRANSACTION;
							 | 
						||
| 
								 | 
							
								PRAGMA foreign_keys = on;
							 |