sql >> Databasteknik >  >> RDS >> Mysql

Använder kommandot LOAD DATA INFILE i en lagrad procedur

Nej, det är inte möjligt på grund av säkerhetsskäl, antar jag. Du kan dock generera "LOAD DATA"-frågor för tabeller i en databas med det här tricket (returnera en serie frågor för varje tabell:trunkera tabell innan du laddar data, inaktivera sedan nycklar, ladda sedan data och aktivera sedan nycklar):

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

När du har kört den här frågan, resulterade raderna i frågor för överföring av data. Jag använder det när jag flyttar ett fullständigt databasinnehåll till ett annat. Naturligtvis, i den frågan kan du filtrera dina nödvändiga tabeller med fler villkor. Hoppas det hjälper.




  1. Postgres-anslutning nekades från Openshift Tomcat 7-kassett

  2. Microsoft Access – Grunderna

  3. Konvertera nvarchar till bigint i SQL Server 2008

  4. Ställ in NLSLANG utan tusenseparator