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

LAST_INSERT_IDに基づく条件付き挿入

    2回目の試行はほぼ正しかった。 ISNOTNULLでNULL値をチェックする必要があります。だから使用

    INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
    SELECT @EVENT_ID, 'Notes', 'WO#89574' FROM DUAL
    WHERE @EVENT_ID IS NOT NULL;  -- instead of != 
    

    または

    INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE)
    SELECT t.* FROM (
        SELECT @EVENT_ID, 'Notes', 'WO#89574'
    ) t
    WHERE @EVENT_ID IS NOT NULL;  -- instead of != 
    

    最初のものは機能しません:

    -- THIS DOES NOT WORK
    SELECT IF(@EVENT_ID != null, 
        INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
    

    IF の構文が

    ステートメントの条件付き実行は、ストアドルーチン<でのみ可能です。 / a> 。 IF構文 保存されたルーチンの数は次のようなものを許可します

    IF @EVENT_ID IS NOT NULL THEN
        INSERT INTO EVENTDETAILS (EVENT_ID, ITEMNAME, ITEMVALUE) ...
    END IF
    

    これらの両方の構文バージョンを区別する必要があります。




    1. IPアドレス(IPv4)をRの整数に変換します

    2. AndroidアプリケーションのmysqlデータベースからListViewにデータをフェッチできません

    3. SQLServerの左結合と右結合の違い

    4. 処理中のMySQL例外ハンドラアクセス例外