Ich habe es geschafft, die folgende Spalte in einer neuen Tabelle zu erstellen:
CREATE TABLE t_issue_dates as
SELECT issue_d,
cast(substr(issue_d,5,4) as numeric) as issue_year
FROM myDB
(Der Code codiert eine Jahr-Monat-Variable in eine Nur-Jahr-Variable um.)
Ich kann diese Variable jedoch nicht zu meiner vorhandenen Tabelle "myDB" hinzufügen. Ich habe versucht, die:
ALTER TABLE myDB ADD v_year
- Befehl, aber ich kann es nicht schaffen, es richtig zu machen.
Hat jemand eine Idee, wie ich die obige Variable zur "ursprünglichen" Tabelle myDB hinzufüge?
Vielen Dank!
Erstens unterstützen viele Datenbanken berechnete oder generierte Spalten. Das bedeutet, dass Sie der Datenbank eine virtuelle Spalte hinzufügen können, indem Sie Folgendes tun:
alter table t_issue_dates add issue_year as (cast(substr(issue_d, 5, 4) as numeric));
Ich empfehle diesen Ansatz, weil er issue_year
immer auf dem neuesten Stand ist.
Zweitens können Sie dies als tatsächliche Spalte tun, aber der Wert kann veraltet sein und muss für jede eingefügte / aktualisierte Zeile neu berechnet werden:
alter table t_issue_dates add issue_year numeric;
update t_issue_dates
set issue_year = cast(substr(issue_d, 5, 4) as numeric);
Für die Aufzeichnung würde ich int
eher als verwenden numeric
.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen