[英]How to get primary_key of last inserted record in database with Python
[英]How to get column name for primary_key at database level?
我需要在数据库级别获取包含主键的列名。
Model.primary_key
返回的models_id
列名称不是数据库级别的主键。 无论如何,我无法更改迁移或修改表。
我目前可以通过MySqlAdapter使用ActiveRecord::Base.connection.primary_key('table_name')
来获取它
但这不适用于具有复合主键的表。 如果表包含复合主键,则返回nil
。
有什么办法可以通过编程实现这一目标吗?
ActiveRecord不支持开箱即用的复合主键。
您需要安装Composite_primary_keys gem ,然后,如果主键是复合键,则ActiveRecord::Base.connection.primary_key('table_name')
将返回一个列名数组。
执行查询:
SHOW COLUMNS FROM table_name;
然后查看返回的所有行,其中名为KEY的列的值为'PRI' 。 然后, Field列将为您提供表中构成表主键一部分的列名。
或者:
SELECT COLUMN_NAME FROM information_schema WHERE TABLE_SCHEMA='database_name' AND TABLE_NAME = 'table_name' AND COLUMN_KEY = 'PRI';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.