Mam tabelę, która ma tysiące wierszy. Ponieważ tabela nie została skonstruowana początkowo z kolumną created_at, nie ma możliwości pobrania znacznika czasu utworzenia. Ważne jest jednak, aby zacząć otrzymywać znaczniki czasu dla przyszłych wierszy.Dodaj kolumnę znacznika czasu z domyślnym NOW() tylko dla nowych wierszy.
Czy istnieje sposób mogę dodać kolumnę datownika z domyślnej wartości NOW(), tak, że nie będzie zapełnić wartości do poprzednich wierszach, ale tylko dla przyszłych te?
Jeśli zrobić kwerendę ALTER
, to wypełnia wszystkie wiersze z datownika:
ALTER TABLE mytable ADD COLUMN created_at TIMESTAMP DEFAULT NOW()
Jest to z zasady dobre, choć niesie za sobą ciężar aktualizacji, która * może * wyzwalać. –
Czy to w ten sposób. – Artur
@Artur: Rozwiązanie przedstawione przez Philipa to droga. 'UPDATE' nie jest konieczne. Jeśli dodasz kolumnę domyślnie do * istniejącej * kolumny, nie wpłynie to na już istniejące wiersze. Wartość domyślna jest wypełniana tylko wtedy, gdy dodasz kolumnę i wartość domyślną w tym samym poleceniu. –