10 Aralık 2009, PERŞEMBE
(Nasıl 3.6.21) mevcut bir sqlite tablo için yabancı anahtar eklerim?
Aşağıdaki tablo var:
CREATE TABLE child(
id INTEGER PRIMARY KEY,
parent_id INTEGER,
description TEXT);
Nasıl parent_id yabancı anahtar kısıtlaması eklerim? Yabancı tuşları Etkin olduğunu varsayalım.
En örnekler tablo oluşturduğunuzu varsayalım - varolan bir kısıtlama eklemek istiyorum.
CEVAP
10 Aralık 2009, PERŞEMBE
Edemezsin.
SQL-92 tablo için yabancı anahtar eklemek için sözdizimi aşağıdaki gibi olurdu
ALTER TABLE child ADD CONSTRAINT fk_child_parent
FOREIGN KEY (parent_id)
REFERENCES parent(id);
SQLite desteği yokALTER TABLE
komut (sqlite.org: SQL Features That SQLite Does Not Implement) ADD CONSTRAINT
varyant.
Bu nedenle, sqlite 3.6.1 yabancı anahtarı eklemek için tek yol şöyle: CREATE TABLE
sırasında
CREATE TABLE child (
id INTEGER PRIMARY KEY,
parent_id INTEGER,
description TEXT,
FOREIGN KEY (parent_id) REFERENCES parent(id)
);
Ne yazık ki geçici bir tabloya varolan verileri kaydetmek, eski tabloyu silip, FK kısıtlaması ile yeni bir tablo oluşturmak, geçici masadan verileri kopyalayın. (sqlite.org - FAQ: Q11)
Bunu Paylaş:
Ben başvuru belirli bir tablo yabancı ...
Mevcut tablo için Yabancı Anahtar ekle...
Nasıl bir tablo veya sütun için tüm ya...
Nasıl SQL Server yabancı anahtar bağım...
Nasıl geçici olarak MySQL yabancı anah...