我很难将一个特定的mysql查询复制到knex中(我使用bookshelf作为orm)。sql查询从数据库返回所有表的元数据。
mysql查询
SELECT
T.TABLE_NAME,
C.COLUMN_NAME,
C.COLUMN_TYPE,
N.CONSTRAINT_TYPE,
K.REFERENCED_TABLE_NAME,
K.REFERENCED_COLUMN_NAME
FROM
INFORMATION_SCHEMA.TABLES T
LEFT JOIN
INFORMATION_SCHEMA.COLUMNS C USING (TABLE_SCHEMA , TABLE_NAME)
LEFT JOIN
INFORMATION_SCHEMA.KEY_COLUMN_USAGE K USING (TABLE_SCHEMA , TABLE_NAME , COLUMN_NAME)
LEFT JOIN
INFORMATION_SCHEMA.TABLE_CONSTRAINTS N USING (TABLE_SCHEMA , TABLE_NAME , CONSTRAINT_NAME)
WHERE
TABLE_TYPE = 'BASE TABLE'
AND TABLE_SCHEMA = 'sakila'
ORDER BY T.TABLE_NAME
此查询返回数据库的每个表之间的关系以及每个表的架构的详细信息。我不知道用knex做这件事的正确方法。
我尝试用knex编写查询,但是information\u schema.key\u column\u usage、information\u schema.table\u约束对于mysql客户机来说是非常特殊的,但是我的用例要求我甚至对mssql也使用它。关于knex的schema用法的信息也没有太多的文档。
感谢您的真知灼见-非常感谢。
1条答案
按热度按时间u3r8eeie1#
像这样的方法可能有用: