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

MySQL memuat data:Perintah ini belum didukung dalam protokol pernyataan yang disiapkan

Anda tidak dapat menggunakan PREPARE untuk menjalankan LOAD DATA INFILE .

Daftar pernyataan yang dapat Anda jalankan dengan PREPARE didokumentasikan di halaman ini:https:/ /dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html di bawah subpos "Sintaks SQL Diizinkan dalam Pernyataan yang Disiapkan". Perhatikan bahwa daftar ini mungkin berbeda di versi MySQL sebelumnya.

Karena Anda tidak dapat menggunakan PREPARE , Anda tidak dapat melakukan metode yang Anda gunakan dengan menyetel variabel dan membuat pernyataan SQL dinamis.

Tetapi Anda dapat menjalankan LOAD DATA INFILE tanpa menggunakan PREPARE . Anda harus menginterpolasi nama file ke dalam pernyataan menggunakan substitusi variabel shell dan kemudian menjalankannya sebagai pernyataan SQL langsung.

File update.sql Anda mungkin terlihat seperti ini:

LOAD DATA LOCAL INFILE '%spacename%' INTO TABLE tmp 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

Kemudian Anda dapat mengganti variabel shell Anda ke dalam file dan menjalankan hasilnya dengan cara ini:

sed s/%spacename%/$1/ update.sql | 
  mysql -h "localhost" -u "root" "-pmypassword" "mydb"

Cara lain yang lebih sederhana adalah dengan menggunakan mysqlimport , kecuali ini mengharuskan nama file input sama dengan nama tabel Anda. Anda dapat mengganti nama file input agar sesuai dengan tabel yang ingin Anda muat (yang Anda sebut tmp ), atau buat tautan simbolis:

ln -s $1 /tmp/tmp.list
mysqlimport --local -h "localhost" -u "root" "-pmypassword" "mydb" /tmp/tmp.list
rm -f /tmp/tmp.list

Ekstensi ".list" diabaikan oleh mysqlimport, jadi Anda dapat menggunakan ekstensi file apa pun, atau tidak sama sekali.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Spring-Boot, Tidak dapat menyimpan string unicode di MySql menggunakan spring-data JPA

  2. Mysql Bagaimana hanya memilih dari kolom jika kolom ada

  3. Bagaimana cara mengubah susunan default tabel?

  4. periksa data duplikat sebelum memasukkan

  5. Cara Memantau Database MySQL/MariaDB menggunakan Netdata di CentOS 7