使用C API,我没有看到确定命名表的外键约束的方法吗?
给出这个例子:
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);
sqlite3_table_column_metadata()会告诉你它是主键,自动增量等等但是如何 获取外键约束?
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
我希望能够获取表格“track”的列表,其中有外键返回表格艺术家列artistid?
我没有看到api这样做?出于聚合的目的,我需要在打开数据库时以编程方式执行此操作。
感谢。
使用PRAGMA foreign_key_list(估价);
我回来了:
PRAGMA foreign_key_list(Valuation);
0|0|Stock|StockId|Id|NO ACTION|NO ACTION|NONE
我知道我需要拆分垂直条,但前两列是什么? 0 | 0?
答案 0 :(得分:1)
请注意,(外国)密钥可以包含多个列,因此将其作为列信息返回是没有意义的。
要获取有关表的外键的信息,请使用:
PRAGMA foreign_key_list(table-name);
此pragma为表“table-name”的CREATE TABLE语句中的REFERENCES子句创建的每个foreign key constraint返回一行。