2011-12-13 11 views
1

私はEnterprise Architectを使用してデータベースをモデル化しています。さて、私はSQLiteデータベース用のテーブルを生成したいのですが、do notは完全なSQL92を実装しています。SQLiteスクリプトを生成する

私の問題は、SQLiteのスクリプトを生成するために何か良いスクリプト/モデルがありALTER TABLE Node ADD CONSTRAINT FK_name FOREIGN KEY (field) REFERENCES TABLE_NAME (ID)

のですか?

ペドロ

EDIT

PRAGMA foreign_keys = ON; 

CREATE TABLE MonitoredData ( 
ID INTEGER PRIMARY KEY NOT NULL, 
NODE INTEGER, 
MINUTE INTEGER, 
HOUR INTEGER, 
DAY INTEGER, 
MONTH INTEGER, 
YEAR INTEGER, 
SPAN INTEGER 
); 
CREATE TABLE Node ( 
ID INTEGER PRIMARY KEY NOT NULL, 
MEMORY_USAGE INTEGER, 
CPU_USAGE INTEGER, 
NETWORK_USAGE INTEGER, 
DISK_USAGE INTEGER 
FOREIGN KEY(ID) REFERENCES MonitoredData(NODE) 
); 
CREATE TABLE MemoryUsage ( 
ID INTEGER PRIMARY KEY NOT NULL, 
SIZE INTEGER, 
RESIDENT INTEGER, 
SHARE INTEGER, 
TEXT INTEGER, 
DATA INTEGER, 
VIRTUALSIZE INTEGER, 
RSS INTEGER, 
RSSLIM TEXT, 
MEM_TOTAL INTEGER, 
MEM_USED INTEGER, 
MEM_FREE INTEGER, 
MEM_BUFFERS INTEGER, 
MEM_CACHED INTEGER 
FOREIGN KEY(ID) REFERENCES Node(MEMORY_USAGE) 
); 

答えて

0

SQLiteは、外部キー制約は、テーブルと同時に作成されている必要があります。 docsから:

CREATE TABLE track(
    trackid  INTEGER, 
    trackname TEXT, 
    trackartist INTEGER, 
    FOREIGN KEY(trackartist) REFERENCES artist(artistid) 
); 

また、(歴史的な理由のために)接続ごと基づいて外部キー執行有効にする必要があります。

PRAGMA foreign_keys = ON; 
+0

おかげで...しかし、あなたが問題を見ることができます私が編集で追加した私の質問は? –

+0

私はカンマが足りなかった...私の上に恥があるx) –

関連する問題