Manpage logo

SQL::Translator::Parser::SQLite - parser for SQLite

NAME  SYNOPSIS  DESCRIPTION  AUTHOR  SEE ALSO 

NAME

SQL::Translator::Parser::SQLite − parser for SQLite

SYNOPSIS

use SQL::Translator;
use SQL::Translator::Parser::SQLite;
my $translator = SQL::Translator−>new;
$translator−>parser("SQL::Translator::Parser::SQLite");

DESCRIPTION

This is a grammar for parsing CREATE statements for SQLite as described here:

http://www.sqlite.org/lang.html

CREATE INDEX

sql−statement ::=
CREATE [TEMP | TEMPORARY] [UNIQUE] INDEX index−name
ON [database−name .] table−name ( column−name [, column−name]* )
[ ON CONFLICT conflict−algorithm ]

column−name ::=
name [ ASC | DESC ]

CREATE TABLE

sql−command ::=
CREATE [TEMP | TEMPORARY] TABLE table−name (
column−def [, column−def]*
[, constraint]*
)

sql−command ::=
CREATE [TEMP | TEMPORARY] TABLE table−name AS select−statement

column−def ::=
name [type] [[CONSTRAINT name] column−constraint]*

type ::=
typename |
typename ( number ) |
typename ( number , number )

column−constraint ::=
NOT NULL [ conflict−clause ] |
PRIMARY KEY [sort−order] [ conflict−clause ] |
UNIQUE [ conflict−clause ] |
CHECK ( expr ) [ conflict−clause ] |
DEFAULT value

constraint ::=
PRIMARY KEY ( name [, name]* ) [ conflict−clause ]|
UNIQUE ( name [, name]* ) [ conflict−clause ] |
CHECK ( expr ) [ conflict−clause ]

conflict−clause ::=
ON CONFLICT conflict−algorithm

CREATE TRIGGER

sql−statement ::=
CREATE [TEMP | TEMPORARY] TRIGGER trigger−name [ BEFORE | AFTER ]
database−event ON [database−name .] table−name
trigger−action

sql−statement ::=
CREATE [TEMP | TEMPORARY] TRIGGER trigger−name INSTEAD OF
database−event ON [database−name .] view−name
trigger−action

database−event ::=
DELETE |
INSERT |
UPDATE |
UPDATE OF column−list

trigger−action ::=
[ FOR EACH ROW | FOR EACH STATEMENT ] [ WHEN expression ]
BEGIN
trigger−step ; [ trigger−step ; ]*
END

trigger−step ::=
update−statement | insert−statement |
delete−statement | select−statement

CREATE VIEW

sql−command ::=
CREATE [TEMP | TEMPORARY] VIEW view−name AS select−statement

ON CONFLICT clause

conflict−clause ::=
ON CONFLICT conflict−algorithm
conflict−algorithm ::=
ROLLBACK | ABORT | FAIL | IGNORE | REPLACE

expression

expr ::=
expr binary−op expr |
expr like−op expr |
unary−op expr |
( expr ) |
column−name |
table−name . column−name |
database−name . table−name . column−name |
literal−value |
function−name ( expr−list | * ) |
expr (+) |
expr ISNULL |
expr NOTNULL |
expr [NOT] BETWEEN expr AND expr |
expr [NOT] IN ( value−list ) |
expr [NOT] IN ( select−statement ) |
( select−statement ) |
CASE [expr] ( WHEN expr THEN expr )+ [ELSE expr] END

like−op::=
LIKE | GLOB | NOT LIKE | NOT GLOB

AUTHOR

Ken Youens−Clark <[email protected]>.

SEE ALSO

perl(1), Parse::RecDescent, SQL::Translator::Schema.


Updated 2026-06-01 - jenkler.se | uex.se