I have used SQLIte3 to create databases and then added tables to it. Then i closed the terminal and reopened it.
I typed the command sqlite3, and typed select * from tableName; It says the table is not found.
Think i have to select the database first and then type the above select statement to work. So how can i do that ?
SQL commands like show databases; is not recognized.
You have to write sqlite3 DB_NAME on terminal to open database. Then you can see sqlite prompt like sqlite3> You can enter command select * from tableName there, so that your tables will be listed. You can also try .schema command to see the schema of your data base. Refer the site http://www.sqlite.org/ for more details.
You can use SQLite Manager firefox add-on to view sqlite database, table and execute query there.
Related
I'm following this tutorial:
https://www.cwp.govt.nz/guides/core-technical-documentation/framework/en/tutorials/4-site-search
I've finished the first step of adding FulltextSearchable::enable(); to mysite/_config.php. I then run the dev/build as suggested but instead of completing successfully, I get this error:
[User Error] Couldn't run query: ALTER TABLE "File" ADD fulltext
"SearchFields" ("Filename","Title","Content") The used table type
doesn't support FULLTEXT indexes
Google tells me that my MySQL database is in the incorrect format. However SilverStripe automatically generates a database for you. I could change the database format, but I don't think changing the database format is the correct approach here as other users appear to have the module working.
Any help would be appreciated.
As far as my memory serves me right SilverStripe creates the tables as InnoDB. MySQL 5.5 documentation says that FULLTEXT indexes are supported by MyISAM tables. InnoDB support for FULLTEXT indexes comes in 5.6.
Full-text indexes can be used only with MyISAM tables. (In MySQL 5.6 and up, they can also be used with InnoDB tables.)
You need to change your tables to MyISAM or update MySQL.
Here is a good guide for changing table types. In case the site goes down, here are the good points:
Steps to follow:
Take backup of Mysql database.
Run this sql query via terminal or in phpmyadmin for the database which you wish to convert into MYISAM.
mysql -u username -p -e "SELECT concat('ALTER TABLE ', TABLE_NAME,' ENGINE=MYISAM;') FROM Information_schema.TABLES WHERE TABLE_SCHEMA = 'db_name' AND ENGINE = 'InnoDB' AND TABLE_TYPE = 'BASE TABLE'" | tail -n+2 >> alter.sql
Note: Change db_name with your actual database name
Import that alter.sql file into INNODB database
EDIT: Of course you can only change those tables that need to be FULLTEXT indexed.
Based on the threads I read, I know if you launch sqlite3 when you're in whatever folder, then that's your current folder.
But I can't find any existing tables. It's like this:
XXXX/User/Folder$ ls
123.db 344.db
XXXX/User/Folder$ sqlite3
SQLITE version .....
sqlite> .tables
sqlite>
First you must select database because tables exist in specific databases. In Sqlite3 file system file represents separate database. So in your example you have two databases 123.db and 344.db. To select a database simply specify it to sqlite3 cli:
$ sqlite3 123.db
sqlite> .tables
Now you should see the list of tables in database 123.db.
I have a sqlite file but I don't know what tables there are in it and thus I can't use a SELECT query.
So, is there a way to know what table are in it ?
P.S. I am under Ubuntu Linux and I have already installed sqlite3 from shell.
You can open the database using sqlite3 using:
sqlite3 <databasefile>
Once in the sqlite3 shell you can simply type:
.tables
to see a list of all the tables.
You can see the table structure of a particular table using:
.schema <tablename>
You can also omit the table name to see the schema for the whole database.
Information about these commands and more can be seen by typing:
.help
I am working on Mac OS X,
I want to create a new SQLite DB, and
I am using http://www.sqlite.org/quickstart.html as a reference.
I am entering: sqlite3 test.db
and getting the response:
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
Why is this happening?
It worked. Quit out and test - the database has been created.
You are now in the SQLite shell, and it is ready to receive commands like CREATE TABLE..., INSERT INTO..., etc.
If you would prefer not to use the interactive shell, you can build your schema straight from the command line:
sqlite3 test.db "CREATE TABLE ..."
Or just create an empty database with no schema:
sqlite3 test.db ""
But that's the same as just creating an empty file, anyway:
touch test.db
Because that is the administrative shell prompt. The shell created test.db and is now waiting for you to do something with it thus the sqlite> prompt you see.
You may want to create table ... at this point.
so it is fine. you are prompted to enter commands. create table, insert, select. have fun!
You're being taken to the SQLite prompt (where you can create tables, add data, etc.). Nothing appears out of the ordinary based on what you've posted.
I'm trying to view my firefox cookies db (cookies.sqlite). Since I've never accessed dbs with anything other than phpmyadmin, I'm at a loss as to how to view the content of this sqlite file. There's localhost/sqlitemanager, but I'd rather stick to the phpmyadmin interface that I'm used to.
Any ideas how I can open/view this sqlite db the normal way in phpmyadmin? Is it possible?
Thanks in advance
P.S. I know that browser cookies are very commonly accessed/played with. If you know another tool that's more specific for this goal, please drop me an answer or suggest in the comments.
There are also several web interfaces for sqlite.
phpSQLiteAdmin
SQLiteManager
Simple SQLite Manager
SQLite Admin
WizSQLiteAdmin
ezSqliteAdmin
SQLiteWebAdmin
knoda
I have not yet tried any of them - in fact, I found this SO question while researching sqlite web front-ends for my own use. But I, too, come from a phpMyAdmin background, so the first one I plan to try is phpSQLiteAdmin.
I imagine there are various GUI programs that will hold your hand. However, I'm going to show you what I would do if I was interested in table moz_cookies in db cookies.sqlite.
$
$ sqlite3 cookies.sqlite
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> .schema
CREATE TABLE moz_cookies (id INTEGER PRIMARY KEY, name TEXT, value TEXT, host TEXT, path TEXT,expiry INTEGER, lastAccessed INTEGER, isSecure INTEGER, isHttpOnly INTEGER);
sqlite> select * from moz_cookies limit 1;
1248713741170186|PREF|ID=12d44375be9e7c86:U=d07dae1b87f4537c:LD=en:NR=100:TM=1248713740:LM=1254091506:FV=2:IG=3:S=Jdo_PXt92J5ojL6E|.google.com|/|1317163505|1255144201180851|0|0
sqlite>
You may want the sqlite3 CLI program. It is available on Unix and Windows.
SQLITE3(1) SQLITE3(1)
NAME
sqlite3 - A command line interface for SQLite version 3
SYNOPSIS
sqlite3 [options] [databasefile] [SQL]
SUMMARY
sqlite3 is a terminal-based front-end to the SQLite library that can
evaluate queries interactively and display the results in multiple for‐
mats. sqlite3 can also be used within shell scripts and other applica‐
tions to provide batch processing features.
DESCRIPTION
To start a sqlite3 interactive session, invoke the sqlite3 command and
optionally provide the name of a database file. If the database file
does not exist, it will be created. If the database file does exist,
it will be opened.
It has two categories of operations.
Commands intended directly for the interactive shell begin with .. Anything is an SQL query terminated as usual with ;.
Adminer is a PHPMyAdmin-like system that has support for MySQL, PostgreSQL, SQLite, MS SQL, Oracle, SimpleDB, Elasticsearch, MongoDB, etc.