Parse SQLite ALTER, CREATE & UPDATE

My project involves running custom SQL statements in a SQLite database. I am looking for a JavaScript regular expression to parse ALTER, CREATE, and UPDATE SQL queries. Here are the examples and results that I am looking for.

Create Index

CREATE INDEX Christy...
CREATE INDEX IF NOT EXISTS Christy...
CREATE UNIQUE INDEX Christy...
CREATE UNIQUE INDEX IF NOT EXISTS Christy...

Result

a = [..."CREATE", "INDEX", "Christy"]

Create table without table constraint

CREATE TABLE Vicky (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,score REAL DEFAULT .10 CHECK (weight<=1));
CREATE TABLE IF NOT EXISTS Vicky (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,score REAL DEFAULT .10 CHECK (weight<=1));

Result

a = [..."CREATE", "TABLE", "Vicky", "id INTEGER PRIMARY KEY AUTOINCREMENT","name TEXT","score REAL DEFAULT .10 CHECK (weight<=1)"]

Create a table with table restrictions

CREATE TABLE Vicky (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,score REAL DEFAULT .10 CHECK (weight<=1)),PRIMARY KEY (id, name));
CREATE TABLE IF NOT EXISTS Vicky (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT,score REAL DEFAULT .10 CHECK (weight<=1)),PRIMARY KEY (id, name));

Result

a = [..."CREATE", "TABLE", "Vicky", "id INTEGER PRIMARY KEY AUTOINCREMENT","name TEXT","score REAL DEFAULT .10 CHECK (weight<=1)","PRIMARY KEY (id, name))"]

Create trigger

CREATE TRIGGER Arwen...
CREATE TRIGGER IF NOT EXISTS Arwen...

Result

a = [..."CREATE", "TRIGGER", "Arwen"]

Create view

CREATE VIEW Snow...
CREATE VIEW IF NOT EXISTS Snow...

Result

a = [..."CREATE", "VIEW", "Snow"]

Edit table

ALTER TABLE Vicky...

Result

a = [..."ALTER", "TABLE", "Vicky"]

Update table

UPDATE Vicky...
UPDATE OR ROLLBACK Vicky...
UPDATE OR ABORT Vicky...
UPDATE OR REPLACE Vicky...
UPDATE OR FAIL Vicky...
UPDATE OR IGNORE Vicky...

Result

a = [..."UPDATE", "TABLE", "Vicky"] 


Here are links to SQLite docs for these SQL statements.

ALTER TABLE
CREATE INDEX
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
UPDATE

Thanks,
HeadDataZombie

+3
source share
2 answers

? ? ?

SQL , , . , . . parsing-sql-create-table-statement-using-jquery TrimQuery, JS.

, (CREATE/ALTER/UPDATE), , .

0

SQL ( ) . ...

wierd SQLite , , , PEG.js JS/CC SQL.

, PEG.js ALTER TABLE:

start = altertable

altertable = "alter" w "table" w ( dbname:identifier w? "." ) ? w? tablename:identifier w ( renameto / addcolumn)

renameto = "rename" w "to" w newname:identifier

addcolumn = "add" w ( "column" w )? col:identifier

identifier = chars:([a-zA-Z][a-zA-Z_0-9]*)

w = " " +

, , , .

0

Source: https://habr.com/ru/post/1787861/


All Articles