Veröffentlicht 17. Mai 200916 j Hallo, hab da ein Problem, musste eine Spalte in einer Tabelle ergänzen - alter table... add... jetz soll ich den Anfangswert in dieser Spalte auf 2000 einstellen, hab aber keine Ahnung wie, ich konnte auch nichts finden, mach ich das mit decode, muss ich einen constraint definieren? kann mir jemand helfen?
17. Mai 200916 j Update DeineTabelle set NeueSpalte = 2000; //ich gehe mal davon aus, dass es sich um ein Zahlenformat handelt, bei Text müsstest Du die 2000 noch als '2000' schreiben. das wars schon, somit werden alle Datensätze mit dem Wert 2000 in der neuen Spalte gesetzt. Bearbeitet 17. Mai 200916 j von Jeglalf
17. Mai 200916 j Hab nochmal drüber nachgedacht, könnte sein, dass du generell bei jedem insert die 2000 erstmal als startwert haben willst, dann hast du 2 möglichkeiten: 1. Vorbelegen in den Insert-Statements selbst oder 2. Trigger einbauen, der bei leerem Wert 2000 einfügt: CREATE OR REPLACE TRIGGER vorbelegen AFTER INSERT ON DeineTabelle FOR EACH ROW WHEN (NEW.NeueSpalte is NULL) BEGIN update DeineTabelle set NeueSpalte = 2000 WHERE [Primärschlüsselspaltenname]=new.[Primärschlüsselspaltenname]; END; / Danach Trigger "einschalten": ALTER TRIGGER vorbelegen ENABLE; Jetzt wir bei jedem einfügen eines neuen Datensatzes, sofern der eingefügte Wert in der neuen Spalte NULL ist, der neue Datensatz geupdatet und mit 2000 vorbelegt. Bearbeitet 17. Mai 200916 j von Jeglalf
18. Mai 200916 j Hallo, hab da ein Problem, musste eine Spalte in einer Tabelle ergänzen - alter table... add... jetz soll ich den Anfangswert in dieser Spalte auf 2000 einstellen, hab aber keine Ahnung wie, ich konnte auch nichts finden, mach ich das mit decode, muss ich einen constraint definieren? kann mir jemand helfen? Ich bin nicht ganz sicher, was du möchtest, aber ich denke , du willst eine neuen Spalte in eine bestehende Tabelle einfügen vom Typ varchar2(2000) ? ALTER TABLE MyTable ADD (myNewAttribute VARCHAR2 (2000) ) / Gruss
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.