kodus / sql-split
A simple facility to split SQL files into individual queries - supports MySQL and PostgreSQL
Installs: 167 922
Dependents: 1
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 4
Open Issues: 1
Requires
- php: >=8.0
Requires (Dev)
README
A simple parser to split SQL (and/or DDL) files into individual SQL queries and strip comments.
Install via Composer
composer require kodus/sql-split
Features
I designed this for use with PDO and MySQL/PostgreSQL statements.
It uses a very simple recursive descent parser to minimally tokenize valid SQL - this approach ensures there is no ambiguity between quoted strings, keywords, comments, etc. but makes no attempt to validate SQL command structure or validity of the extracted statements.
It supports the following SQL/DDL features:
- SQL and DDL Queries
- Stored procedures, functions, views, triggers, etc.
- PostgreSQL dollar-tags (
$$
and$mytag$
delimiters) - The MySQL
DELIMITER
command
Usage
Just this:
$statements = Splitter::split(file_get_contents(...));
This will split to individual SQL statements and (by default) strip comments.
Then just loop over your $statements
and run them via PDO
.
That's all.