tursodatabase/turso
Voir sur GitHubFeature Request: Support multiple SQL statements in single Exec() call
Open
#1 440 ouverte le 3 mai 2025
enhancementhelp wanted
Métriques du dépôt
- Stars
- (19 103 stars)
- Métriques de merge PR
- (Métriques PR en attente)
Description
Currently, when executing multiple SQL statements (particularly CREATE TABLE statements) in a single Exec() call, Limbo only executes the first statement and ignores the rest.
// This code only creates table1, ignoring table2 and table3
schema := `
CREATE TABLE table1 (id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE table2 (id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE table3 (id INTEGER PRIMARY KEY, name TEXT);
`
_, err = db.Exec(schema)
The same CREATE TABLE sequence works fine with each statement executed separately.
statements := []string{
"CREATE TABLE table1 (id INTEGER PRIMARY KEY, name TEXT);",
"CREATE TABLE table2 (id INTEGER PRIMARY KEY, name TEXT);",
"CREATE TABLE table3 (id INTEGER PRIMARY KEY, name TEXT);",
}
for _, stmt := range statements {
_, err = db.Exec(stmt)
// handle error
}
If this is by design (possibly for security reasons), it's fine to close this of course. Supporting multiple statements would improve compatibility with existing SQLite-based applications migrating to Limbo.