在sqlite中使用列名作为外键

时间:2011-05-10 09:49:38

标签: sqlite foreign-keys

有没有办法在sqlite中引用“给定表的列名”作为外键?

我测试过了:

create table "test"(
    test TEXT
);
create table "othertest"(
    othertest TEXT references PRAGMA table_info("test")[1]
);

但正如预期的那样,它不起作用......(错误是Error: near "table_info": syntax error,但即使接受了table_info,我也怀疑[1]部分是否有效)

1 个答案:

答案 0 :(得分:0)

通常,SQL数据库管理系统不允许在DDL中使用表达式。支持information_schema视图的系统不允许您使用标量子查询返回外键引用的目标。这是我日常使用的所有SQL dbms中的语法错误。

create table test (
    article_id integer primary key 
        references articles (select column_name 
                             from information_schema.columns
                             where table_name = 'articles'
                             and is_nullable = 'NO')
);

尝试这样做需要解决的真正问题是什么?