作業とDATES_ARCHIVEDMYSQLは、私がDATESテーブルに現在の日付よりも古い日付を持つすべての行-88日を選択したい+ CASE +は、私は2つの同じテーブルDATESを持って
ない[削除]を選択します+に挿入しますそれらの行をDATES_ARCHIVEDに挿入します。
私はこれのためにCASEを作成しました。
挿入後、元のDATESテーブルから同じ行を削除したいとします。
私はこの前に動作するようになった確信していますが、それはそれはエラーを与え続けてもう働いていない:
エラーコード:1136列の数は、行1
すべての値の数と一致していませんテーブルには同じ量のカラムがあり、テーブル上にある2つのトリガも削除しましたが、同じエラーが発生します。
私はそれがASのMostRecentDateで終了するケースのため、私はかなり確信しています、これは新しい列を追加していると思います。
はまた、私は最初に以下のすべてのコード削除する場合:日付からを、私は同じエラーを取得します。ここ
は、コードは次のとおりです。事前に
INSERT INTO dates_archived
(term, course_no, date1_end, date2_end, date3_end, date4_end)
SELECT
term, course_no, date1_end, date2_end, date3_end, date4_end,
CASE WHEN date1_end > date2_end THEN date1_end
WHEN date2_end > date1_end THEN date2_end
WHEN date3_end > date1_end THEN date3_end
WHEN date4_end > date1_end THEN date4_end
WHEN date1_end > date3_end THEN date1_end
WHEN date2_end > date3_end THEN date2_end
WHEN date3_end > date2_end THEN date3_end
WHEN date4_end > date2_end THEN date4_end
WHEN date1_end > date4_end THEN date1_end
WHEN date2_end > date4_end THEN date2_end
WHEN date3_end > date4_end THEN date3_end
WHEN date4_end > date3_end THEN date4_end
ELSE 0
END AS MostRecentDate
FROM dates
HAVING (MostRecentDate <= (SELECT CURDATE() - INTERVAL 88 DAY));
FROM dates
WHERE (date1_end OR date2_end OR date3_end OR date4_end = MostRecentDate);
DELETE FROM dates
WHERE (date1_end OR date2_end OR date3_end OR date4_end = MostRecentDate);
おかげで、 クリス
7列を選択して6列に挿入 – Jens
また、where句のselect句で定義したエイリアスは使用できません。 – fancyPants
あなたの削除ステートメントはMostRecentDateについてどのように知っていますか? – fancyPants