Dostałem to zadanie na uniwersytecie. Moim zadaniem jest wypełnienie nowej (jeszcze nieistniejącej) kolumny mojej tabeli wartościami: col1 + col2 + col3, używając tylko jednego zapytania na podstawie operatora UPDATE w MySQL . W rezultacie otrzymam tabelę z 4 kolumnami (col1, col2, col3, sum_of_columns).

Jak mogę to zrobić, jeśli UPDATE modyfikuje tylko istniejące wiersze?

1
son_of_a_mom 22 marzec 2020, 18:31

2 odpowiedzi

Najlepsza odpowiedź

Jeśli nowa kolumna jest zawsze sumą trzech kolumn, możesz to zrobić

ALTER TABLE table1
ADD COLUMN `sum_of_columns` INT GENERATED ALWAYS AS (col1+col2+col3) STORED NULL;

Byłaby to WARTOŚĆ DOMYŚLNA.

Po wstawieniu wiersza zostanie to dodane po dodaniu NULL jako kolumny 4

0
nbk 22 marzec 2020, 16:26

Spróbuj tego

UPDATE sample_table set col4 = col1+col2+col3 ;

W instrukcji tworzenia tabeli można ustawić wartość domyślną jako NULL dla kolumny col4.

0
nbk 22 marzec 2020, 16:17