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 № 1DEFAULT 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);