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

ネストされたwhileループを使用せずにこのプログラムを実装する別の方法はありますか?

    INSERTで使用されるすべてのデータ以降 ステートメントは「SELECT」ステートメントから取得されます。Javaアプリとデータベースの間で余分なラウンドトリップを行う意味はありません。 1つのSQLステートメントですべてを実行すると、最高のパフォーマンスが得られます。

    SQLステートメントは次のようになります

    INSERT INTO snomedinfo_data (refid,id,effectivetime,active,moduleid,conceptid,languagecode,typeid,term,caseSignificanceid)
    SELECT d.refid, d.id, d.effectivetime, d.active, d.moduleid, d.conceptid, d.languagecode, d.typeid, d.term, d.caseSignificanceid
    FROM snomed_descriptiondata d
    JOIN snomed_conceptdata c ON c.id = d.conceptid AND c.active = 1 AND d.active = 1
    

    そして、あなたのJavaコードはこれに要約することができます

    try {
        oRoot = Root.createDbConnection(null);
        String sql = "INSERT INTO snomedinfo_data...";
        oPrStmt = oRoot.con.prepareStatement(sql);
        oPrStmt.executeUpdate();
    }
    


    1. MySQLでトランザクションセーフなSEQUENCEをエミュレートする

    2. freeTDSはその構成を使用していません

    3. PDO AdvancedCRUDGeneratorツールを使用してPHPCRUDインターフェイスをすばやく構築する

    4. MYSQLINSERTSELECTの問題