Nicht die ganze Spalte per Insert updaten

alexfrenzel92

SQL-Guru
Beiträge
122
Hallo,

Ich würde gerne eine Spalte per INSERT updaten während eine bestimmte Spalte als Autoincrement definiert ist und somit die Spalte nie hinzugefügt wird, sondern immer nur eine andere erstetzt.

Nun die Frage:
Kann ich die Spalte auch teilweise ersetzen? Also alle Werte mit bestimmten Werten/Parametern updaten außer der letzten Zelle.

Bisher löscht er die Zeile (mit 6 Spalten) nur komplett bei 'INSERT INTO Tabelle SELECT A, D, F, G, I'
Bei 'INSERT INTO Tabelle SELECT A, D, F, G, I, J' funktioniert alles aber die letzte Zelle soll bleiben wie sie ist...

Danke
Alex
 
Werbung:
Oh...
Ich merke gerade, das was ich über Auto_increment erzählt habe war etwas komplett anderes, sorry!

Die erste Spalte ist auf Unique gesetzt - das hatte ich verwechselt - und so wird, da der erste Wert, der inserted wird, der gleiche ist, wie der der schon drin steht automatisch geupdated.
Also per Insert geupdatet.

Mir ist eigentlich relativ egal, ob das jetzt per INSERT oder Update geschieht - momentan geht es per INSERT und dadurch, dass eine Spalte UNIQUE ist wird vom Sinn her geupdatet
 
suchst du sowas?

Code:
test=# create table u (id int primary key, val int);
CREATE TABLE
test=*# insert into u values (1, 10) on conflict (id) do update set val = excluded.val;
INSERT 0 1
test=*# select * from u;
 id | val
----+-----
  1 |  10
(1 row)

test=*# insert into u values (1, 20) on conflict (id) do update set val = excluded.val;
INSERT 0 1
test=*# select * from u;
 id | val
----+-----
  1 |  20
(1 row)

test=*#
 
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONFLICT (...
 
Werbung:
Zurück
Oben