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

Използване на команда LOAD DATA INFILE в съхранена процедура

Не, не е възможно поради съображения за сигурност, предполагам. Можете обаче да генерирате заявки за „ЗАРЕЖДАНЕ НА ДАННИ“ за таблици в база данни, като използвате този трик (върнете поредица от заявки за всяка таблица:съкратете таблицата преди зареждане на данни, след това деактивирайте ключове, след това заредете данни, след това активирайте ключове):

SELECT CONCAT('TRUNCATE TABLE ',table_name,'; ALTER TABLE ',table_name,' DISABLE KEYS;    LOAD DATA INFILE "',table_name,'.txt" INTO TABLE ',table_name,' FIELDS TERMINATED BY "\\t" LINES TERMINATED BY "\\n"; ALTER TABLE ',table_name,' ENABLE KEYS; ')
FROM information_schema.`TABLES` as infs
WHERE infs.`TABLE_SCHEMA`=DATABASE()
AND infs.`TABLE_TYPE`!='VIEW';

След като изпълните тази заявка, получените редове са заявки за прехвърляне на данни. Използвам го, когато премествам пълно съдържание на база данни в друга. Разбира се, в тази заявка можете да филтрирате необходимите си таблици, като използвате повече условия. Надявам се да помогне.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Свържете се с отдалечена база данни MySQL чрез Python

  2. как да извика съхранената процедура на MySQL при пролетно зареждане с помощта на хибернация?

  3. Как да изберете от име на динамична таблица

  4. Нарушение на последователността на MySQL GTID

  5. Търсене на частични IP адреси, съхранени като цели числа