sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャでのLOADDATAINFILEコマンドの使用

    いいえ、セキュリティ上の理由から不可能だと思います。ただし、このトリックを使用して、データベース内のテーブルに対して「LOADDATA」クエリを生成できます(テーブルごとに一連のクエリを返します。データをロードする前にテーブルを切り捨て、キーを無効にしてからデータをロードし、キーを有効にします):

    >
    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. MongoDBで多対多の関係をモデル化する方法(MySQLユーザーの場合)

    2. PostgreSQLのINSERT...ON CONFLICT(UPSERT)機能をflask_sqlalchemyで使用するにはどうすればよいですか?

    3. 左結合を1つの結果を返すように制限しますか?

    4. JDBCを使用してローカルホストに接続するにはどうすればよいですか?