W relacyjnych bazach danych modyfikacje danych realizuje się poleceniami DML. Gdy celem jest zmiana istniejących rekordów, właściwą instrukcją jest UPDATE. Składnia (w typowym ujęciu) ma postać:
UPDATE nazwa_tabeli SET kolumna = wartość [WHERE warunek];
W tym zadaniu trzeba wypełnić pole nowy wartością logiczną TRUE dla każdego rekordu w tabeli artykuły. Dlatego poprawne jest zapytanie:
UPDATE artykuły SET nowy=TRUE;
Kluczowe jest to, że brak klauzuli WHERE oznacza wykonanie aktualizacji na wszystkich wierszach tabeli. To dokładnie odpowiada wymaganiu "dla każdego rekordu".
Dlaczego pozostałe propozycje są błędne:
- Zapytania zaczynające się od INSERT służą do dodawania nowych rekordów, a nie do hurtowej zmiany już istniejących. Dodatkowo przedstawiona składnia z "VALUE nowy=TRUE" nie jest poprawnym zapisem INSERT.
- Konstrukcje typu "UPDATE nowy FROM artykuły ..." przypominają składnię SELECT, ale nie są prawidłowym sposobem aktualizacji kolumny w tej formie. W UPDATE najpierw wskazuje się tabelę, potem SET, a dopiero opcjonalnie warunek WHERE.
- "INSERT INTO nowy FROM artykuły SET TRUE" miesza pojęcia: nowy jest kolumną, nie tabelą docelową, a składnia łączy elementy INSERT i UPDATE w niepoprawny sposób.
W praktyce warto pamiętać: UPDATE + SET zmienia dane, INSERT dopisuje wiersze. Jeśli chcesz zmienić tylko część rekordów (np. tylko nowe dostawy), wtedy dopiero dodajesz WHERE.