2011-12-13 236 views
1

我正在使用Enterprise Architect来建模数据库。现在,我想为SQLite数据库生成一些表,但他们do not实现了完整的SQL92。生成SQLite脚本

我的问题是ALTER TABLE Node ADD CONSTRAINT FK_name FOREIGN KEY (field) REFERENCES TABLE_NAME (ID)

有没有好的剧本/模型来生成SQLite的脚本?

佩德罗

编辑

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) –