sqlalchemy的model中定义的外键名和对应的数据库中定义的外键名必须一样吗?
比如说,
class TeachingTrains(Base):
__tablename__ = 'teaching_trains'
train_id = Column(Integer, primary_key=True)
name = Column(String(40), default='')
user_id = Column(ForeignKey('user.user_id'), nullable=False, index=True)
created = Column(DateTime, nullable=False, default=datetime.now)
update_user_id = Column(ForeignKey('user.user_id'), index=True,
default=None)
updated = Column(DateTime, nullable=False, default=datetime.now)
deleted = Column(DateTime, default=None)
update_user = relationship(
'User', primaryjoin='TeachingTrains.update_user_id == User.user_id')
user = relationship(
'User', primaryjoin='TeachingTrains.user_id == User.user_id')
这个model中定义的外键,和
CREATE TABLE `teaching_trains` (
`train_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(40) NOT NULL DEFAULT '' COMMENT '名称',
`user_id` int(11) NOT NULL COMMENT '创建人ID',
`created` datetime NOT NULL COMMENT '创建时间',
`update_user_id` int(11) DEFAULT NULL COMMENT '修改人ID',
`updated` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` datetime DEFAULT NULL COMMENT '删除时间',
`correlation_lesson` varchar(40) DEFAULT '[]',
`example_video` varchar(40) DEFAULT '' COMMENT '练习示范视频',
PRIMARY KEY (`train_id`),
KEY `lessons_user_id` (`user_id`),
KEY `lessons_update_user_id` (`update_user_id`),
CONSTRAINT `lessons_update_user_id` FOREIGN KEY (`update_user_id`) REFERENCES `user` (`user_id`),
CONSTRAINT `lessons_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=20046 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='练习信息';
这个表中的外键名,有关联吗?
是否是model中只要指定清楚了字段,表中也指定了同样的字段就行了,外键名无所谓?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
外键名字随意,字段名对应好就行