Difference between revisions of "SQL"

From GnuCash
Jump to: navigation, search
(New page: This page is for information about a SQL backend for GnuCash. Here is the data model created by SQLite3: <pre> CREATE TABLE versions (table_name text(50), table_version integer); CREATE T...)
 
m (format sql to be more readable.)
Line 2: Line 2:
  
 
Here is the data model created by SQLite3:
 
Here is the data model created by SQLite3:
 +
 
<pre>
 
<pre>
CREATE TABLE versions (table_name text(50), table_version integer);
+
CREATE TABLE versions (
CREATE TABLE transactions (guid CHAR(32) PRIMARY KEY NOT NULL, currency_guid CHAR(32) NOT NULL, num text(2048) NOT NULL, post_date CHAR(14) NOT NULL, enter_date CHAR(14) NOT NULL, description text(2048));
+
    table_name     text(50),
CREATE TABLE splits (guid CHAR(32) PRIMARY KEY NOT NULL, tx_guid CHAR(32) NOT NULL, account_guid CHAR(32) NOT NULL, memo text(2048) NOT NULL, action text(2048) NOT NULL, reconcile_state text(1) NOT NULL, reconcile_date CHAR(14) NOT NULL, value_num integer NOT NULL, value_denom integer NOT NULL, quantity_num integer NOT NULL, quantity_denom integer NOT NULL, lot_guid CHAR(32));
+
    table_version   integer
CREATE TABLE lots (guid CHAR(32) PRIMARY KEY NOT NULL, account_guid CHAR(32), is_closed integer NOT NULL);
+
);
CREATE TABLE budgets (guid CHAR(32) PRIMARY KEY NOT NULL, name text(2048) NOT NULL, description text(2048), num_periods integer NOT NULL);
+
CREATE TABLE transactions (
CREATE TABLE recurrences (obj_guid CHAR(32) NOT NULL, recurrence_mult integer NOT NULL, recurrence_period_type text(2048) NOT NULL, recurrence_period_start CHAR(8) NOT NULL);
+
    guid           CHAR(32) PRIMARY KEY NOT NULL,
CREATE TABLE commodities (guid CHAR(32) PRIMARY KEY NOT NULL, namespace text(2048) NOT NULL, mnemonic text(2048) NOT NULL, fullname text(2048), cusip text(2048), fraction integer NOT NULL, quote_flag integer NOT NULL, quote_source text(2048), quote_tz text(2048));
+
    currency_guid   CHAR(32) NOT NULL,
CREATE TABLE accounts (guid CHAR(32) PRIMARY KEY NOT NULL, name text(2048) NOT NULL, account_type text(2048) NOT NULL, commodity_guid CHAR(32) NOT NULL, commodity_scu integer NOT NULL, non_std_scu integer NOT NULL, parent_guid CHAR(32), code text(2048), description text(2048));
+
    num             text(2048) NOT NULL,
CREATE TABLE slots (obj_guid CHAR(32) NOT NULL, name text(4096) NOT NULL, slot_type integer NOT NULL, int64_val integer, string_val text(4096), double_val real, timespec_val CHAR(14), guid_val CHAR(32), numeric_val_num integer, numeric_val_denom integer);
+
    post_date       CHAR(14) NOT NULL,
CREATE TABLE schedxactions (guid CHAR(32) PRIMARY KEY NOT NULL, name text(2048), enabled integer NOT NULL, start_date CHAR(8) NOT NULL, last_occur CHAR(8), num_occur integer NOT NULL, rem_occur integer NOT NULL, auto_create integer NOT NULL, auto_notify integer NOT NULL, adv_creation integer NOT NULL, adv_notify integer NOT NULL, instance_count integer NOT NULL, template_act_guid CHAR(32) NOT NULL);
+
    enter_date     CHAR(14) NOT NULL,
CREATE TABLE prices (guid CHAR(32) PRIMARY KEY NOT NULL, commodity_guid CHAR(32) NOT NULL, currency_guid CHAR(32) NOT NULL, date CHAR(14) NOT NULL, source text(2048), type text(2048), value_num integer NOT NULL, value_denom integer NOT NULL);
+
    description     text(2048)
CREATE TABLE books (guid CHAR(32) PRIMARY KEY NOT NULL, root_account_guid CHAR(32) NOT NULL, root_template_guid CHAR(32) NOT NULL);
+
);
 +
CREATE TABLE splits (
 +
    guid           CHAR(32) PRIMARY KEY NOT NULL,
 +
    tx_guid         CHAR(32) NOT NULL,
 +
    account_guid   CHAR(32) NOT NULL,
 +
    memo           text(2048) NOT NULL,
 +
    action         text(2048) NOT NULL,
 +
    reconcile_state text(1) NOT NULL,
 +
    reconcile_date CHAR(14) NOT NULL,
 +
    value_num       integer NOT NULL,
 +
    value_denom     integer NOT NULL,
 +
    quantity_num   integer NOT NULL,
 +
    quantity_denom integer NOT NULL,
 +
    lot_guid       CHAR(32)
 +
);
 +
CREATE TABLE lots (
 +
    guid           CHAR(32) PRIMARY KEY NOT NULL,
 +
    account_guid   CHAR(32),
 +
    is_closed       integer NOT NULL
 +
);
 +
CREATE TABLE budgets (
 +
    guid           CHAR(32) PRIMARY KEY NOT NULL,
 +
    name           text(2048) NOT NULL,
 +
    description     text(2048),
 +
    num_periods     integer NOT NULL
 +
);
 +
CREATE TABLE recurrences (
 +
    obj_guid               CHAR(32) NOT NULL,
 +
    recurrence_mult         integer NOT NULL,
 +
    recurrence_period_type text(2048) NOT NULL,
 +
    recurrence_period_start CHAR(8) NOT NULL
 +
);
 +
CREATE TABLE commodities (
 +
    guid           CHAR(32) PRIMARY KEY NOT NULL,
 +
    namespace       text(2048) NOT NULL,
 +
    mnemonic       text(2048) NOT NULL,
 +
    fullname       text(2048),
 +
    cusip           text(2048),
 +
    fraction       integer NOT NULL,
 +
    quote_flag     integer NOT NULL,
 +
    quote_source   text(2048),
 +
    quote_tz       text(2048)
 +
);
 +
CREATE TABLE accounts (
 +
    guid           CHAR(32) PRIMARY KEY NOT NULL,
 +
    name           text(2048) NOT NULL,
 +
    account_type   text(2048) NOT NULL,
 +
    commodity_guid CHAR(32) NOT NULL,
 +
    commodity_scu   integer NOT NULL,
 +
    non_std_scu     integer NOT NULL,
 +
    parent_guid     CHAR(32),
 +
    code           text(2048),
 +
    description     text(2048)
 +
);
 +
CREATE TABLE slots (
 +
    obj_guid           CHAR(32) NOT NULL,
 +
    name               text(4096) NOT NULL,
 +
    slot_type           integer NOT NULL,
 +
    int64_val           integer,
 +
    string_val         text(4096),
 +
    double_val         real,
 +
    timespec_val       CHAR(14),
 +
    guid_val           CHAR(32),
 +
    numeric_val_num     integer,
 +
    numeric_val_denom   integer
 +
);
 +
CREATE TABLE schedxactions (
 +
    guid               CHAR(32) PRIMARY KEY NOT NULL,
 +
    name               text(2048),
 +
    enabled             integer NOT NULL,
 +
    start_date         CHAR(8) NOT NULL,
 +
    last_occur         CHAR(8),
 +
    num_occur           integer NOT NULL,
 +
    rem_occur           integer NOT NULL,
 +
    auto_create         integer NOT NULL,
 +
    auto_notify         integer NOT NULL,
 +
    adv_creation       integer NOT NULL,
 +
    adv_notify         integer NOT NULL,
 +
    instance_count     integer NOT NULL,
 +
    template_act_guid   CHAR(32) NOT NULL
 +
);
 +
CREATE TABLE prices (
 +
    guid               CHAR(32) PRIMARY KEY NOT NULL,
 +
    commodity_guid     CHAR(32) NOT NULL,
 +
    currency_guid       CHAR(32) NOT NULL,
 +
    date               CHAR(14) NOT NULL,
 +
    source             text(2048),
 +
    type               text(2048),
 +
    value_num           integer NOT NULL,
 +
    value_denom         integer NOT NULL
 +
);
 +
CREATE TABLE books (
 +
    guid               CHAR(32) PRIMARY KEY NOT NULL,
 +
    root_account_guid   CHAR(32) NOT NULL,
 +
    root_template_guid CHAR(32) NOT NULL
 +
);
 
</pre>
 
</pre>

Revision as of 15:18, 7 June 2009

This page is for information about a SQL backend for GnuCash.

Here is the data model created by SQLite3:

CREATE TABLE versions (
    table_name      text(50),
    table_version   integer
);
CREATE TABLE transactions (
    guid            CHAR(32) PRIMARY KEY NOT NULL,
    currency_guid   CHAR(32) NOT NULL,
    num             text(2048) NOT NULL,
    post_date       CHAR(14) NOT NULL,
    enter_date      CHAR(14) NOT NULL,
    description     text(2048)
);
CREATE TABLE splits (
    guid            CHAR(32) PRIMARY KEY NOT NULL,
    tx_guid         CHAR(32) NOT NULL,
    account_guid    CHAR(32) NOT NULL,
    memo            text(2048) NOT NULL,
    action          text(2048) NOT NULL,
    reconcile_state text(1) NOT NULL,
    reconcile_date  CHAR(14) NOT NULL,
    value_num       integer NOT NULL,
    value_denom     integer NOT NULL,
    quantity_num    integer NOT NULL,
    quantity_denom  integer NOT NULL,
    lot_guid        CHAR(32)
);
CREATE TABLE lots (
    guid            CHAR(32) PRIMARY KEY NOT NULL,
    account_guid    CHAR(32),
    is_closed       integer NOT NULL
);
CREATE TABLE budgets (
    guid            CHAR(32) PRIMARY KEY NOT NULL,
    name            text(2048) NOT NULL,
    description     text(2048),
    num_periods     integer NOT NULL
);
CREATE TABLE recurrences (
    obj_guid                CHAR(32) NOT NULL,
    recurrence_mult         integer NOT NULL,
    recurrence_period_type  text(2048) NOT NULL,
    recurrence_period_start CHAR(8) NOT NULL
);
CREATE TABLE commodities (
    guid            CHAR(32) PRIMARY KEY NOT NULL,
    namespace       text(2048) NOT NULL,
    mnemonic        text(2048) NOT NULL,
    fullname        text(2048),
    cusip           text(2048),
    fraction        integer NOT NULL,
    quote_flag      integer NOT NULL,
    quote_source    text(2048),
    quote_tz        text(2048)
);
CREATE TABLE accounts (
    guid            CHAR(32) PRIMARY KEY NOT NULL,
    name            text(2048) NOT NULL,
    account_type    text(2048) NOT NULL,
    commodity_guid  CHAR(32) NOT NULL,
    commodity_scu   integer NOT NULL,
    non_std_scu     integer NOT NULL,
    parent_guid     CHAR(32),
    code            text(2048),
    description     text(2048)
);
CREATE TABLE slots (
    obj_guid            CHAR(32) NOT NULL,
    name                text(4096) NOT NULL,
    slot_type           integer NOT NULL,
    int64_val           integer,
    string_val          text(4096),
    double_val          real,
    timespec_val        CHAR(14),
    guid_val            CHAR(32),
    numeric_val_num     integer,
    numeric_val_denom   integer
);
CREATE TABLE schedxactions (
    guid                CHAR(32) PRIMARY KEY NOT NULL,
    name                text(2048),
    enabled             integer NOT NULL,
    start_date          CHAR(8) NOT NULL,
    last_occur          CHAR(8),
    num_occur           integer NOT NULL,
    rem_occur           integer NOT NULL,
    auto_create         integer NOT NULL,
    auto_notify         integer NOT NULL,
    adv_creation        integer NOT NULL,
    adv_notify          integer NOT NULL,
    instance_count      integer NOT NULL,
    template_act_guid   CHAR(32) NOT NULL
);
CREATE TABLE prices (
    guid                CHAR(32) PRIMARY KEY NOT NULL,
    commodity_guid      CHAR(32) NOT NULL,
    currency_guid       CHAR(32) NOT NULL,
    date                CHAR(14) NOT NULL,
    source              text(2048),
    type                text(2048),
    value_num           integer NOT NULL,
    value_denom         integer NOT NULL
);
CREATE TABLE books (
    guid                CHAR(32) PRIMARY KEY NOT NULL,
    root_account_guid   CHAR(32) NOT NULL,
    root_template_guid  CHAR(32) NOT NULL
);