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

prosedur tersimpan mysql dengan INTO OUTFILE

Dengan asumsi (demi contoh ) yang deals tabel terlihat seperti

---------------------------
| id | deal_date  | deal  |
---------------------------
| 1  | 2014-03-10 | Deal1 |
| 2  | 2014-03-11 | Deal2 |
| 3  | 2014-03-12 | Deal3 |
---------------------------

Sekarang kode prosedur Anda mungkin terlihat

DELIMITER //
CREATE PROCEDURE get_deals()
BEGIN
    -- create a temporary table and fill it with the desired subset of data
    -- Apply WHERE and ORDER BY as needed
    DROP TEMPORARY TABLE IF EXISTS tmp_deals;
    CREATE TEMPORARY TABLE tmp_deals 
    SELECT id, deal_date, deal -- explicitly specify real column names here. Don't use SELECT *. It's a bad practice.
      FROM deals
     ORDER BY id DESC;

    -- write the resultset to the file
    SELECT * 
      INTO OUTFILE '/path/to/deals.txt'
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
        LINES TERMINATED BY '\n'
      FROM tmp_deals;

    -- return the resultset to the client
    SELECT * FROM tmp_deals; 
END//
DELIMITER ;

Setelah dijalankan:

CALL get_deals();

Di klien Anda akan mendapatkan:

---------------------------
| id | deal_date  | deal  |
---------------------------
| 3  | 2014-03-12 | Deal3 |
| 2  | 2014-03-11 | Deal2 |
| 1  | 2014-03-10 | Deal1 |
---------------------------

Dan isi filenya adalah:

3,"2014-03-12","Deal3"
2,"2014-03-11","Deal2"
1,"2014-03-10","Deal1"

Catatan: saat menggunakan OUTFILE MySQL mengharuskan file dibuat segar . Jika Anda meninggalkan file di direktori output maka pada panggilan prosedur berikutnya Anda akan mendapatkan kesalahan berikut

Salah satu cara untuk mengatasinya adalah dengan menambahkan stempel waktu ke nama file baik di dalam prosedur itu sendiri atau dengan melewatkan nilai melalui parameter.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kembalikan hasil kueri berdasarkan tanggal hari ini di SQL (MySQL) Bagian 2

  2. Dua kolom sebagai kunci utama di mysql?

  3. php mysql_connect Peringatan nonaktifkan

  4. FOREIGN KEY mereferensikan kolom tabel yang sama. Tidak dapat memasukkan nilai

  5. Hasilkan nomor seri dalam kueri mysql