sqlite3
читает команды из стандартного ввода, что означает, что вы можете передать ему SQL из файла или из командной строки, а не только в интерактивном режиме. sqlite3
автоматически завершает работу в конце ввода, поэтому .quit
не требуется при интерактивном использовании без -.
Например:
#!/bin/sh
sqlite3 /var/www/dbs/ha.db <<'END_SQL'
.timeout 2000
INSERT INTO table1 SELECT * FROM table2;
DELETE FROM table2;
END_SQL
Также обратите внимание на исправленный синтаксис для DELETE
.
Если вам также необходимо создать table2
в базе данных:
#!/bin/sh
sqlite3 /var/www/dbs/ha.db <<'END_SQL'
CREATE TABLE IF NOT EXISTS table2 AS SELECT * FROM table1;
INSERT INTO table2 SELECT * FROM table1;
DELETE FROM table1;
END_SQL
Измените DELETE FROM table1;
на DROP table1;
, если вам нужно удалить table1
полностью (, а не только его содержимое ).