Mysql
 sql >> база данни >  >> RDS >> Mysql

Данни за зареждане на MySQL:Тази команда все още не се поддържа в подготвения протокол за изявление

Не можете да използвате PREPARE за да стартирате LOAD DATA INFILE .

Списъкът с изрази, които можете да изпълнявате с PREPARE са документирани на тази страница:https:/ /dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html под заглавието "SQL синтаксис, разрешен в подготвените изявления". Имайте предвид, че този списък може да е различен в по-ранните версии на MySQL.

Защото не можете да използвате PREPARE , не можете да направите метода, който използвате, като зададете променлива и направите динамичен SQL израз.

Но можете да стартирате LOAD DATA INFILE без да използвате PREPARE . Трябва да интерполирате името на файла в израза, като използвате заместване на променлива на обвивката и след това да го изпълните като директен SQL израз.

Вашият файл update.sql може да изглежда така:

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

След това можете да замените вашата шел променлива във файла и да стартирате резултата по следния начин:

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

Друг по-прост начин е да използвате mysqlimport , освен това изисква името на входния файл да е същото като името на вашата таблица. Можете или да преименувате своя входен файл, за да съответства на таблицата, в която искате да заредите (която наричате tmp ), или създайте символна връзка:

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

Разширението ".list" се игнорира от mysqlimport, така че можете да използвате всяко файлово разширение или никакво.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавяне на допълнителна стойност на колона с INSERT ... SELECT в MySQL

  2. Как да изтриете всички таблици в базата данни, без да изтриете самата база данни?

  3. Напишете DataFrame в mysql таблица с помощта на pySpark

  4. flask-login:не мога да разбера как работи

  5. Опции за динамичен избор на php и mysql