Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

dapatkah saya menggunakan variabel untuk menentukan OUTFILE di mysql

Sunting: Menyimpan data (misalnya tabel) ke dalam file tanpa menggunakan variabel (hanya nilai konstan)

-- folder_path could could be like => c:/users/sami
-- choose the directory/folder already available in system
-- and make sure you have access to write the file there

SELECT * INTO OUTFILE 'folder_path/filename.csv'
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
FROM database.tableName;

Sekarang menggunakan variabel

Kapan pun Anda harus menggunakan nama variabel dalam sql, Anda memerlukan sql dinamis (yang hanya berlaku dalam prosedur tersimpan, baik dalam kueri sql sederhana maupun dalam pemicu atau fungsi)

SET @OutputPath := 'Users/jo/Documents'; //or any folder_path
SET @fullOutputPath := CONCAT(@OutputPath,'/','filename.csv');
SET @fullOutputPath2 := CONCAT(@OutputPath,'/','filename2.csv');

set @q1 := concat("SELECT * INTO OUTFILE ",@fullOutputPath,
" FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"'
FROM database.tableName");

set @q2 := concat("SELECT * INTO OUTFILE ",@fullOutputPath2,
" FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"'
FROM database.tableName2");

prepare s1 from @q1;
execute s1;deallocate prepare s1;

prepare s1 from @q2;
execute s1;deallocate prepare s1;

Karena Anda memiliki keduanya ' dan " dalam kueri Anda, jadi saya menggabungkan kueri Anda menggunakan " dan menggunakan \ untuk keluar dari " original asli Anda untuk memastikan penggunaannya sebagai karakter literal dan tidak digunakan untuk penggabungan

Saya baru saja memberi tahu penggunaan variable di sql. Pertama Anda harus memastikan apakah kueri Anda berfungsi seperti contoh di atas (tanpa menggunakan variabel)

Kesimpulan: Jika kueri Anda di atas berfungsi dengan baik, maka sql dinamis yang saya beri tahu akan berfungsi dengan baik mengingat Anda menggunakannya dalam beberapa prosedur tersimpan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih setiap bulan meskipun bulan tidak ada di tabel mysql

  2. MySQL:Bisakah Anda menentukan batas acak?

  3. Bagaimana cara melihat waktu kueri presisi tinggi di baris perintah mysql?

  4. Bagaimana menemukan semua tabel yang memiliki kunci asing yang mereferensikan table.column tertentu dan memiliki nilai untuk kunci asing tersebut?

  5. MySQL - Pemicu untuk memperbarui tabel yang sama setelah dimasukkan