5

It's possible to run more than one command in the direct SQL execution in SQlite Manager? (useful if you insert a lot of data)

e.g.

insert into TestTable (Name, Age) values("Thomas", 25)
insert into TestTable (Name, Age) values("Peter", 29)
...

Thx

leon22
  • 5,280
  • 19
  • 62
  • 100

4 Answers4

16

Solution is very simple ;-)

-> use a semicolon to separate the commands

insert into TestTable (Name, Age) values("Thomas", 25);
insert into TestTable (Name, Age) values("Peter", 29);
...
leon22
  • 5,280
  • 19
  • 62
  • 100
5

Alternatively, you could write the statement as:

insert into TestTable (Name, Age) 
values
("Thomas", 25),
("Peter", 29)
;

Edit: Please note, as per @DominiqueJacquel's comment, that this will only work in SQLite version 3.7.11+

acatt
  • 487
  • 3
  • 10
  • 1
    That syntax will not work with all versions of SQLite, it was only added around 3.7.11 I think. – zeFrenchy Oct 05 '12 at 08:45
  • @DominiqueJacquel you are absolutely correct. This will only work in SQLite in version 3.7.11+ – acatt Oct 05 '12 at 12:37
2

Perhaps you may work executemany() method instead of execute()

Something like:

values = [
    ("Thomas", 25),
    ("Peter", 29)
]
conn.executemany("insert into TestTable (Name, Age) values (?, ?)", values)

Will work fine.

Winter Squad
  • 169
  • 7
1

Create a file like:

$ cat query-list.sql
insert into TestTable (Name, Age) values("Thomas", 25)
insert into TestTable (Name, Age) values("Peter", 29)
...

Now run the command:

$ sqlite3 my-database.db < query-list.sql
Ahmad Ismail
  • 11,636
  • 6
  • 52
  • 87