我正在研究SQLite數據庫。數據庫已經填滿了,但我想重構它。這裏是什麼,我需要做的一個樣本:將表拆分爲兩部分並使用外鍵鏈接
我現在有一個表:
CREATE TABLE Cars (ID INTEGER PRIMARY KEY,
Name VARCHAR(32),
TopSpeed FLOAT,
EngineCap FLOAT);
我想這個分成兩個表:
CREATE TABLE Vehicles (ID INTEGER PRIMARY KEY,
Name VARCHAR(32),
TopSpeed FLOAT);
CREATE TABLE Cars (ID INTEGER PRIMARY KEY,
VehicleID INTEGER CONSTRAINT FK_Cars REFERENCES [Vehicles](ID),
EngineCap FLOAT);
我想通了創建與Cars
表內容的臨時表,我可以填寫Vehicles
表與Cars
表的內容:
CREATE TEMPORARY TABLE Cars_temp AS SELECT * FROM Cars;
INSERT INTO Vehicles (Name, TopSpeed)
SELECT Name, TopSpeed FROM Cars_temp;
但我仍然在尋找一種方式去在同樣的選擇,而把EngineCap
場到新Cars
表和不知何故從Vehicles
表中提取相應的ID值裝進VehicleID
外鍵字段上Cars
表。
我打開了解決方法或替代方法。
謝謝。
只想提及 - 儘管類似的名字,這個問題是沒有回答http://stackoverflow.com/questions/5312968/split-table-into-two-tables-with-foreign-keys –
你可以省略VARCHAR(32)作爲SQLite會忽略它。我會用TEXT來代替。 – mateusza