首页 文章

sqlite C api如何弄清楚哪些表有外键?

提问于
浏览
0

使用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)

我想能够获得一个列表回到表“轨道”,有外键回到表艺术家列artistid?

我没有看到api这样做?出于聚合的目的,我需要在打开数据库时以编程方式执行此操作 .

谢谢 .

使用PRAGMA foreign_key_list(估价)后;

我回来了:

PRAGMA foreign_key_list(Valuation);
0|0|Stock|StockId|Id|NO ACTION|NO ACTION|NONE

我知道我需要拆分垂直条,但前两列是什么? 0 | 0?

1 回答

  • 1

    请注意,(外部)键可以包含多个列,因此将其作为列信息返回是没有意义的 .

    要获取有关表的外键的信息,请使用以下命令:

    PRAGMA foreign_key_list(table-name);此pragma为表“table-name”的CREATE TABLE语句中的REFERENCES子句创建的每个外键约束返回一行 .

相关问题