melbx
melbx

Reputation: 319

save all my work on sql in a file?

Actually , i am working on Mysql in linux terminal .

i want a way or a command to save all the queries i write and their outputs in a file .

well, write every query and redirect it to a file is very hard and useless !

if there is any bash script or command it will be helpfull .

Upvotes: 0

Views: 589

Answers (3)

jpkotta
jpkotta

Reputation: 9437

This is a bit advanced, but I've just started playing with org-babel, and it's pretty great for SQL.

Set up org-babel in your init.el:

(org-babel-do-load-languages 'org-babel-load-languages
                             '((sql . t)))
(setq org-confirm-babel-evaluate nil
      org-src-fontify-natively t
      org-src-tab-acts-natively t)

And create an org-mode buffer. You can just run M-x org-mode in *scratch* if you want.

Then write your SQL:

#+BEGIN_SRC sql :engine "mysql" :dbhost "db.example.com" :dbuser "jqhacker" :dbpassword "passw0rd" :database "the_db"
show tables
select * from the_table limit 10
#+END_SRC

Evaluate it by putting the cursor in the SQL block and type C-c C-c. The results show up in the buffer. You can write as many source blocks as you like, and evaluate them in any order.

There's a lot more to org-babel: http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-sql.html

Upvotes: 1

Arjun sharma
Arjun sharma

Reputation: 541

yes , tee command can be use for this purpose .

while logging into mysql you can make this redirection like

mysql -u username -pPassword | tee -a outputfilename

your whole session will be stored in the file

Upvotes: 3

melbx
melbx

Reputation: 319

i just founded that there is an sql command to save query and output in a file ;

mysql> tee filename ;

example :

mysql> tee tmp/output.out;
..logging to file 'tmp/output.out'

now : every query and his output will be saved in a output.out file.

note : " remember to write file name without quotes"

Upvotes: 0

Related Questions