When I use the .read FILENAME command in sqlite it will read commands from a .sql file no problem
but when that file contains further .read FILENAME commands sqlite will not read those files.
It seems like the .read FILENAME command can only be used in the command line.
So Am I meant to place all my table creation commands in the one file?
if so what sort of craziness is that?
PS I am using command line SQLite for purposes of getting my database schema sorted before using sqlite with a programming language.
Yes, dot-commands like .read are part of the sqlite3 shell and not a feature of SQL as recognized by sqlite. The .read command just executes the SQL in the file, it does not execute it as a sqlite3 command shell file.
So Am I meant to place all my table creation commands in the one file?
That seems like a reasonable thing to do, especially since later at this point:
PS I am using command line SQLite for purposes of getting my database schema sorted before using sqlite with a programming language.
... you won't have sqlite3 shell available at all and are restricted to SQL only.
Related
I am trying to start out using Notepad++ to run SQLite commands. I have tried following two brief YouTube tutorials to get me going. I can run the initial .bat file, but still cannot run the .sql file.
I have a Windows system environment Path variable set to the folder containing sqlite3.exe
"C:\Users\Adam\sqlite\"
I have saved the following file RunSQLite.bat in the folder containing sqlite3.exe
sqlite3.exe testDB.db
I have created a second file queries.sql
SELECT 34;
When I try to run queries.sql from Notepad++, using the RUN command:
C:\Users\Adam\sqlite\RunSQLite.bat "$(FULL_CURRENT_PATH)"
the only file that appears to run is RunSQLite.bat, giving the output:
SQLite version 3.36.0 2021-06-18 18:36:39
Enter ".help" for usage hints.
sqlite>
Can anyone tell where I have gone wrong?
Thanks in advance.
aphopk
This C:\Users\Adam\sqlite\RunSQLite.bat "$(FULL_CURRENT_PATH)" will do exactly the same thing if run at the shell. RunSQLite.bat does not take any arguments so the Run command in npp is working as expected.
sqlite3 takes input from an external file with the .read command.
Path issues notwithstanding a bat file something like this should accomplish the task:
sqlite3.exe testDB.db ".read %1"
Notepad++ is a text editor, so you can now use it to edit your SQL file. After selecting the Language > SQL, Notepad++ will highlight SQL syntax as you type. Try typing some SQL, like
SELECT "Hi";
SELECT * FROM mydatabase WHERE id LIKE 'ID%';
You will see color, bold, and other possible formatting applied to the text you type. If you save the file as something.sql, and then load something.sql in your SQL client, the client will run the SQL commands from that file. If you have an existing somethingElse.sql file, you can open it in Notepad++, which will auto-recognize that it’s SQL and apply the syntax highlighting, allowing you to edit it and save it.
By using the Run > Run dialog, you can run an arbitrary command. For example, if your SQL client has a command-line mode accessed thru sqlclient.exe, you could type
c:\path\to\sqlclient.exe $(FILE_NAME)
If you just run it, that probably won’t show you any results… but if you ran
cmd /k c:\path\to\sqlclient.exe $(FILE_NAME)
It will open a new cmd.exe Windows command prompt, and show the output from that file.
If instead of running, you hit “SAVE”, you can give it a name (which will end up later in the Run menu), and/or a keyboard shortcut, so that you can easily re-use that many times.
If you want to do something more fancy, use the NppExec plugin, which includes a better batch/scripting language. Once again, you can save the NppExec script, and make it show up in the Macro menu.
If Python is a programming language you know or could learn (or if, like me, you know enough other programming languages that you can fake the Python), then the Python Script plugin will allow you to do even fancier stuff. (Python is a complete programming language, and has many libraries written, which could act as an interface between your SQL source file and your database engine; PythonScript has access to a full python2.7 interpreter. For example, you could write a script in Python which executes the commands from your SQL, grabs the results from your database engine, and displays them in Notepad++, either inline with your original SQL code, or in a new text document. You are really limited only by your imagination and knowledge of Python.)
I am a newbie to sqlite3.
I have some files which contain a .db file and also another file which contains the definition s of many tables. I try to open with notepad and see that it has create table definitions of many files.
I am trying to read them in sqlite3 in linux.
I try to use .read FILENAME after which I try to see the tables by giving .tables command.
I cant see them.
Is there a way I need to source the file or execute.
Thanks for your help in advance
I haven't done anything with SQLite in a long time, but when I did work with it I used a Firefox extension that made it easy.
Check out SQLite Manager to open the DB file:
https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/
.read FILENAME already executes the sql script in the FILENAME. Check if your .db file is writable and/or if the sql contained your file is correct.
I've just started using SQLite, following the tutorials here and I'm using this on windows. I've got sqlite3.exe extracted to a folder on my desktop, and am running the following line in a command prompt to test it:
sqlite3 test.db
which the official documentation claims should create a file called test.db to work with. However, it doesn't appear to be doing anything, no files are created and it gives no errors or success messages, just another sqlite> prompt. Am I missing something to get this working on windows 7? Thanks.
If the database file does not exist, SQLite starts with an empty database.
The file itself will not be created until you actually write to the database.
Try creating something:
CREATE TABLE Test(some stuff);
Very basic question, having a hard time finding an explanation online.
I have a file code.sql that can be run on two different databases, a.db3 and b.db3. I used sqlite a.db3 to open the database in sqlite3. How do I run code.sql on it?
Use the .read code.sql command, or call sqlite3 with the file as input: sqlite3 a.db3 < code.sql.
I am guessing that you are trying to use the sqlite3 command line tool that you can dowload from the sqlite.org website.
I recomend that you use, instead, sqlitestudio http://sqlitestudio.one.pl
This has a feature to execute SQL from a file on a database:
Use DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.
You can download the DB Browser at SQLite https://sqlitebrowser.org/
I know that the .import command is for the Sqlite3 shell and not for the C API used in my program and that the db may be created and populated before I connect it from my application. However I would like to create a Sqlite db in my program and import data into one of its tables from a text file (eg. data.txt in Windows).
Is there a way to do this or do I have to code something similar to the .import command in my program?
You must either
incude the SQLite statements as strings in your application and use sqlite3_exec on the string(s)
or code something similar to the .import command
Since the sqlite.c shell program is public domain, you may simply copy the .import code into your application.