sqlalchemy到mysql

3zwjbxry  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(269)

尝试从sqlalchemy连接到mysql,但收到
sqlalchemy.exc.internalerror:(pymysql.err.internalerror)(1005,“无法创建表ql12255647.member\u…”。。。键入命令db.create\u all()时
当我使用 sqlite:////tmp/test.db 一切都很好,没有错误
需要解决问题。我的代码如下:

member_courses = db.Table('member_courses',
      db.Column ('member_id', db.String (80), db.ForeignKey('member.id')),
      db.Column ('course_id', db.String (80), db.ForeignKey('course.id')))

class Course(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     course = db.Column(db.String(80), unique = True)

class Member(db.Model):
     id = db.Column(db.Integer,primary_key=True)
     name = db.Column(db.String(80), unique = True)
     email = db.Column(db.String(80), unique = True)
     courses = db.relationship('Course', secondary='member_courses', 
     backref='member', 
     lazy = 'dynamic')

错误:

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) 
(1005, "Can't create table 'sql12255647.member_courses' (errno: 150)") 
[SQL: '\nCREATE TABLE member_courses (\n\tmember_id VARCHAR(80), \n\tcourse_id VARCHAR(80), \n\tFOREIGN KEY(member_id) REFERENCES member (id), \n\tFOREIGN KEY(course_id) REFERENCES course (id)\n)\n\n']
(Background on this error at: http://sqlalche.me/e/2j85)
wdebmtf2

wdebmtf21#

错误代码1005表示表创建失败,因为 Foreign Key constraint was not correctly formed . 要解决此错误,可能只需确保外键的类型与主键的类型完全相同。
这里接受的答案提供了您可以验证的场景的详细概述。
希望这有帮助。

相关问题