SQL Dialects
sql-splitter supports four SQL dialects.
Source: mysqldump
Detection signals:
AUTO_INCREMENT- Backtick quoting (
`table`) SET @variableENGINE=InnoDB
Features supported:
CREATE TABLEwith inline keysINSERT INTO(single and multi-row)CREATE INDEXALTER TABLE- Session commands (
SET,USE)
Example:
CREATE TABLE `users` (`id` INT AUTO_INCREMENT PRIMARY KEY,`name` VARCHAR(100) NOT NULL,`email` VARCHAR(255),INDEX `idx_email` (`email`)) ENGINE=InnoDB;
INSERT INTO `users` VALUES (1, 'Alice', 'alice@example.com');Source: pg_dump (plain text format)
Detection signals:
SERIAL/BIGSERIALCOPY ... FROM stdin- Double quote identifiers (
"table") SET client_encoding
Features supported:
CREATE TABLECOPY ... FROM stdin(tab-separated data)INSERT INTOCREATE INDEXALTER TABLE- Sequences (
CREATE SEQUENCE)
Example:
CREATE TABLE users (id SERIAL PRIMARY KEY,name VARCHAR(100) NOT NULL,email VARCHAR(255));
COPY users (id, name, email) FROM stdin;1 Alice alice@example.com2 Bob bob@example.com\.Note: Binary/custom pg_dump formats are not supported. Use pg_dump -Fp (plain).
Source: .dump command
Detection signals:
INTEGER PRIMARY KEY(implies AUTOINCREMENT)- No quoting or double quotes
PRAGMAstatements
Features supported:
CREATE TABLEINSERT INTOCREATE INDEX- Pragma statements (preserved in
_global.sql)
Example:
CREATE TABLE users (id INTEGER PRIMARY KEY,name TEXT NOT NULL,email TEXT);
INSERT INTO users VALUES (1, 'Alice', 'alice@example.com');Source: sqlcmd, SSMS “Generate Scripts”
Detection signals:
GObatch separatorIDENTITY(1,1)- Square bracket quoting (
[table]) NVARCHAR,DATETIME2
Features supported:
CREATE TABLEINSERT INTOCREATE INDEXGObatch handling
Example:
CREATE TABLE [users] ([id] INT IDENTITY(1,1) PRIMARY KEY,[name] NVARCHAR(100) NOT NULL,[email] NVARCHAR(255));GO
INSERT INTO [users] ([name], [email]) VALUES (N'Alice', N'alice@example.com');GOAuto-Detection
Section titled “Auto-Detection”sql-splitter analyzes the first ~1000 lines to detect the dialect. Override with --dialect:
sql-splitter split dump.sql --dialect=postgressql-splitter convert dump.sql --from mysql --to postgres