Provided by: libparse-dia-sql-perl_0.30-1_all
NAME
Parse::Dia::SQL::Output::SQLite3fk - Create SQL for SQLite version 3, with foreign key support
SYNOPSIS
use Parse::Dia::SQL; my $dia = Parse::Dia::SQL->new(file => 'foo.dia', db => 'sqlite3fk'); print $dia->get_sql();
DESCRIPTION
This sub-class creates SQL for the SQLite database version 3. new The constructor. Object names in SQLite have no inherent limit. 60 has been arbitrarily chosen. _get_create_table_sql Generate create table statement for a single table using SQLite syntax: Includes class comments before the table definition. Includes autoupdate triggers based on the class comment. Includes foreign key support of the form foreign key(thisColumn) references thatTable(thatColumn) {action} Where {action} is the optional contraint condition, such as 'on delete cascade' exactly as entered in the diagram. autoupdate triggers If the class comment includes a line like: <autoupdate:foo/> Then an 'after update' trigger is generated for this table which executes the statement foo for the updated row. Examples of use include tracking record modification dates ("<autoupdate:dtModified=datetime('now')/">) or deriving a value from another field ("<autoupdate:sSoundex=soundex(sName)/">) _create_pk_string Override default function to include foreign key clauses get_schema_drop Generate drop table statements for all tables using SQLite syntax: drop table {foo} if exists get_view_drop Generate drop view statements for all tables using SQLite syntax: drop view {foo} if exists _get_fk_drop Foreign key enforcement is embedded in the table definitions for SQLite, so no output is required here. _get_drop_index_sql drop index statement using SQLite syntax: drop index {foo} if exists get_permissions_create SQLite doesn't support permissions, so suppress this output. get_permissions_drop SQLite doesn't support permissions, so suppress this output. _get_create_association_sql Foreign key enforcement is embedded in the table definitions for SQLite, so no output is required here.
TODO
Things that might get added in future versions: Views Views haven't been tested. They might already work, but who knows... Other stuff Bugs etc