/ / Wie ändere ich in SQLite eine Tabelle, um eine Spalte mit Standardeinschränkung für Null und Fremdschlüssel hinzuzufügen? - sqlite3

Wie ändere ich in SQLite eine Tabelle, um eine Spalte mit der Standardnull- und Fremdschlüsseleinschränkung hinzuzufügen? - sqlite3

Das SQLite-Dokument sagt:

Es ist nicht möglich, die Syntax "ALTER TABLE ... ADD COLUMN" zu verwenden Fügen Sie eine Spalte hinzu, die eine REFERENCES-Klausel enthält, sofern nicht die Standardeinstellung Der Wert der neuen Spalte ist NULL.

Ich kann meine nicht bekommen ALTER TABLE Aussage zu arbeiten, sieht es so aus:

ALTER TABLE Customers ADD COLUMN AddressID INTEGER DEFAULT NULL FOREIGN KEY REFERENCES MasterAddress (AddressID);

Ich kann Verweise auf Problemumgehungen sehen, die eine Einschränkung bei erstellen CREATE TABLE Zeit und das Abrufen der Daten durch eine neue Tabelle, aber ich würde es vorziehen, meine vorhandene Tabelle zu ändern. Ist das möglich?

Ich habe gesetzt PRAGMA foreign_keys = ON.

Antworten:

0 für die Antwort № 1

DEFAULT NULL ist die Standardeinstellung; Sie müssen es nicht angeben.

FOREIGN KEY wird verwendet, um eine Tabelleneinschränkung einzuführen, aber ALTER TABLE unterstützt nur Spalteneinschränkungen. Die Syntax für eine Spaltenbedingung hat nicht die FOREIGN KEY:

ALTER TABLE Customers ADD AddressID INTEGER REFERENCES MasterAddress(AddressID);