Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Tidak Menawarkan Setara \'SELECT * INTO OUTFILE LOCAL\'?
Migrasi pangkalan data boleh memberikan cabaran yang tidak dijangka, kerana sesetengah ciri mungkin tidak lagi berfungsi seperti yang diharapkan. Dalam kes MySQL, pernyataan SELECT * INTO OUTFILE, setelah digunakan untuk mengeksport data ke fail teks, tidak lagi berfungsi atas sebab keselamatan.
Walau bagaimanapun, kenyataan LOAD DATA INFILE boleh diubah suai kepada LOAD DATA LOCAL INFILE, membenarkan data diimport daripada fail tempatan. Ini menimbulkan persoalan: mengapa tiada SELECT INTO OUTFILE LOCAL yang setara?
Menurut manual MySQL, SELECT * INTO OUTFILE terutamanya bertujuan untuk menjana fail teks dengan cepat pada pelayan. Walau bagaimanapun, membuat fail pada klien jauh tidak dibenarkan kerana kebimbangan keselamatan.
Sebagai alternatif, arahan berikut boleh digunakan untuk menjana fail pada hos klien:
mysql -h my.db.com -u username -p password db_name -e'SELECT foo FROM bar' > /tmp/myfile.txt
Berkenaan MariaDB , ia nampaknya tidak menawarkan penyelesaian langsung kepada isu ini. Walau bagaimanapun, ia menyediakan ciri keselamatan tambahan untuk pemindahan data, seperti keupayaan untuk menyekat akses fail kepada pengguna atau alamat IP tertentu.
Atas ialah kandungan terperinci Mengapa MySQL Tidak Menawarkan Setara \'SELECT * INTO OUTFILE LOCAL\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!