# SQL: Spalte kopieren plus Wert erhöhen



## Samson_Miller (26. Okt 2007)

Ich habe eine Tabelle die folgendermaßen aussieht:


```
id | name   | farbe  | nummer 
--------------------------------
1  | Hans   | blau   | 12
2  | Peter  | rot    | 13
```

Jetzt möchte ich eine Zeile hinfügen und zwar mit den Werten, die in der Zeile mit der Nummer 13 stehen, in der neuen Zeile soll dann die Nummer den Wert 14 enthalten.

Die Tabelle soll am Ende so aussehen:



```
id | name   | farbe | nummer 
--------------------------------
1  | Hans   | blau  | 12
2  | Peter  | rot   | 13
3  | Peter  | rot   | 14
```

Die id möchte ich dabei nicht anfassen, die wird automatisch vergeben.

Wie sieht der SQL-Befehl dafür aus? Ich habe bisher nur eine Lösung gefunden, die auch die id explizit erhöht, das möchte ich aber vermeiden.


----------



## abollm (26. Okt 2007)

Samson_Miller hat gesagt.:
			
		

> Die id möchte ich dabei nicht anfassen, die wird automatisch vergeben.
> 
> Wie sieht der SQL-Befehl dafür aus? Ich habe bisher nur eine Lösung gefunden, die auch die id explizit erhöht, das möchte ich aber vermeiden.



Wie genau wird denn die ID erhöht, per Sequence?


----------



## DP (27. Okt 2007)

setzt du halt auf die spalte nummer ein autoincrement


----------



## AlArenal (27. Okt 2007)

DP hat gesagt.:
			
		

> setzt du halt auf die spalte nummer ein autoincrement



Autoincrement ist ein MySQL-spezifisches Argument und mitnichten in jedem RDBMS vorhanden. Andernorts gibt es die deutlich variablere Möglichkeit mit Sequenzen zu arbeiten.


----------



## FenchelT (29. Okt 2007)

Samson_Miller hat gesagt.:
			
		

> Ich habe eine Tabelle die folgendermaßen aussieht:
> 
> 
> ```
> ...




Hallo,  

versuchs doch mal so, wenn ich davon ausgehe, dass die ID von der DB automatisch erhoeht wird:

INSERT INTO deine_Tabelle (name, farbe, nummer)
SELECT name, farbe, nummer+1 as nummer
FROM deine_tabelle t1
WHERE t1.nummer = 13


Gruesse


----------

