需要在sqlite3表中找到哪个是外键

时间:2014-05-02 16:28:18

标签: ruby-on-rails ruby sqlite

我有一个链接的两个表,并在rails上使用ruby。我需要从命令提示符中找出外键的内容。如何从sqlite3控制台中找到外键?

3 个答案:

答案 0 :(得分:1)

关联在Rails中定义,而不是在sqlite3中定义。

在Rails项目中检查应用程序/模型中的模型。

您应该会看到某种关系被定义为...... belongs_tohas_manyhas_one ......还有其他可能性,但如果您只有两张表,那么他们就不会适用。

如果定义没有特别提及foreign_key,那么你可以从模型的名称中解释外键......

例如

class Teacher
has_many students

告诉您学生表上有一个名为“teacher_id”的外键

class Student
belongs_to teacher

告诉你学生桌上有一个名为“teacher_id”的外键(与上面相同的外键)。

这可以让你熟悉Rails中关联的工作方式......

http://guides.rubyonrails.org/association_basics.html

答案 1 :(得分:0)

外键通常始终位于与其连接的模型中。

假设我有一个具有帐户对象的用户对象。用户表中的帐户对象的外部ID为user_id,反之亦然,account_id

但是如果你需要探索更多,你可以打开你的schema.rb来找出它的确切内容。

在控制台中你也可以这样做:

Model.column_names

答案 2 :(得分:0)

尝试将sqlite3实用程序与sqlite3文件一起使用(例如,sqlite3 database.db),然后尝试命令:

.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.

列出表格:

.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.