我有一个链接的两个表,并在rails上使用ruby。我需要从命令提示符中找出外键的内容。如何从sqlite3控制台中找到外键?
答案 0 :(得分:1)
关联在Rails中定义,而不是在sqlite3中定义。
在Rails项目中检查应用程序/模型中的模型。
您应该会看到某种关系被定义为...... belongs_to
或has_many
或has_one
......还有其他可能性,但如果您只有两张表,那么他们就不会适用。
如果定义没有特别提及foreign_key,那么你可以从模型的名称中解释外键......
例如
class Teacher
has_many students
告诉您学生表上有一个名为“teacher_id”的外键
class Student
belongs_to teacher
告诉你学生桌上有一个名为“teacher_id”的外键(与上面相同的外键)。
这可以让你熟悉Rails中关联的工作方式......
答案 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.