sql >> Database >  >> RDS >> Mysql

De opdracht LOAD DATA INFILE gebruiken in een opgeslagen procedure

Nee, dat is om veiligheidsredenen niet mogelijk, neem ik aan. U kunt echter met deze truc "LOAD DATA"-query's voor tabellen in een database genereren (retourneer een reeks query's voor elke tabel:kap de tabel af voordat u gegevens laadt, schakel vervolgens sleutels uit, laad vervolgens gegevens en schakel vervolgens sleutels in):

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';

Nadat u deze query hebt uitgevoerd, zijn de resulterende rijen query's voor het overdragen van gegevens. Ik gebruik het bij het verplaatsen van een volledige database-inhoud naar een andere. Natuurlijk kunt u in die query uw benodigde tabellen filteren met meer voorwaarden. Ik hoop dat het helpt.




  1. PostgreSQL 9.6:parallelle sequentiële scan

  2. Beveiligingsaudits automatiseren voor PostgreSQL

  3. Voeg woordenboek in lijst toe aan database in python

  4. NPM Oracle:BLOB's invoegen