1376 Stimmen

Ändern einer Spalte: null zu nicht null

Ich habe eine Tabelle, die mehrere nullbare Integer-Spalten hat. Dies ist aus mehreren Gründen unerwünscht, daher möchte ich alle Nullen auf 0 aktualisieren und dann diese Spalten auf NOT NULL . Abgesehen von der Änderung von Nullen in 0 müssen die Daten erhalten bleiben.

Ich suche die spezifische SQL-Syntax um eine Spalte zu ändern (nennen Sie es ColumnA ) zu " not null ". Angenommen, die Daten wurden so aktualisiert, dass sie keine Nullen enthalten.

Verwendung von SQL-Server 2000 .

19 Stimmen

Eine andere Sache - Sie könnten eine Voreinstellung hinzufügen, damit alle vorhandenen Einfügungen, die die Spalte nicht angeben, nicht fehlschlagen: ALTER TABLE FOO ADD CONSTRAINT FOO_Bar_Default DEFAULT 0 FOR Bar

5 Stimmen

Es mag Sie auch überraschen, dass unter bestimmten Umständen Ändern einer Spalte in NOT NULL kann eine Menge Protokollierung verursachen.

1voto

Rashmi singh Punkte 137

Sie können die Definition einer vorhandenen DB-Spalte mit dem folgenden Sql ändern.

ALTER TABLE mytable modify mycolumn datatype NOT NULL;

1voto

Ashish Dwivedi Punkte 53

Nehmen wir ein Beispiel:

TABLE NAME=EMPLOYEE

Und ich möchte die Spalte EMPLOYEE_NAME a NOT NULL . Diese Abfrage kann für die Aufgabe verwendet werden:

ALTER TABLE EMPLOYEE MODIFY EMPLOYEE.EMPLOYEE_NAME datatype NOT NULL;

0voto

trooper31 Punkte 172

Für die im JDK (Oracles unterstützte Distribution des Apache Derby) enthaltene JavaDB funktionierte bei mir Folgendes

alter table [table name] alter column [column name] not null;

0voto

Golden Lion Punkte 2590
  1. Vergewissern Sie sich zunächst, dass die Spalte, die Sie in nicht ändern wollen, keine Nullwerte enthält select count(*) from table where column's_name is null

  2. Imputieren Sie die fehlenden Werte. Sie können die Nullen durch eine leere Zeichenfolge oder 0 oder einen Durchschnitts- oder Medianwert oder einen interpolierten Wert ersetzen. Dies hängt von Ihrer Backfill- oder Forwardfill-Strategie ab.

  3. Entscheiden Sie, ob die Spaltenwerte eindeutig oder nicht eindeutig sein müssen. Wenn sie eindeutig sein müssen, fügen Sie eine eindeutige Einschränkung hinzu. Andernfalls prüfen Sie, ob die Leistung angemessen ist oder ob Sie einen Index hinzufügen müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X