有没有办法在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]
部分是否有效)
答案 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')
);
尝试这样做需要解决的真正问题是什么?