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

SQLを使用して複数のテーブルから削除しようとしています

    delete 一度に処理できるテーブルは1つだけなので、次の3つのステートメントが必要になります。

    DELETE FROM upklist 
    WHERE  session_id = (SELECT session_id 
                         FROM   usession 
                         WHERE  delete_session_id IS NULL 
                                AND user_id = (SELECT user_id 
                                               FROM   users 
                                               WHERE  REGEXP_LIKE(USER_NAME, 
                                                      'awpeople', 'i'))); 
    
    DELETE FROM projshar 
    WHERE  session_id = (SELECT session_id 
                         FROM   usession 
                         WHERE  delete_session_id IS NULL 
                                AND user_id = (SELECT user_id 
                                               FROM   users 
                                               WHERE  REGEXP_LIKE(USER_NAME, 
                                                      'awpeople', 'i'))); 
    
    DELETE FROM usession 
    WHERE  session_id = (SELECT session_id 
                         FROM   usession 
                         WHERE  delete_session_id IS NULL 
                                AND user_id = (SELECT user_id 
                                               FROM   users 
                                               WHERE  REGEXP_LIKE(USER_NAME, 
                                                      'awpeople', 'i'))); 
    

    内部クエリはusersessionに依存しているため、注意してください 、最後から削除する必要があります 。



    1. 長時間実行されているデータベース操作をキャンセルするにはどうすればよいですか?

    2. ORACLEでVARCHARのXMLTYPEを変換するにはどうすればよいですか?

    3. NULLの場合、MAX関数で0を設定するにはどうすればよいですか?

    4. JDBC PreparedStatement-同じ引数を使用して、それは可能ですか?