내 Reviewers_POS 테이블에 대한 외래 키를 만들어야합니다. .. 내 차 키로 Reviewers_Id를 가지고 있고, 나는 Reviewrs_POS 테이블에서 내 id_r1에 전달하려는 __이 오류 받고 있어요Mysql 외래 키 만들기
import MySQLdb as mdb
import sys
conexao = mdb.connect('localhost', 'root', 'rot', 'DbOmelete')
with conexao:
cur = conexao.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS Reviewers(Reviewers_Id int unsigned not null AUTO_INCREMENT, PRIMARY KEY (Reviewers_Id),Title varchar(500), Polarity INT, Review TEXT);")
cur.execute("CREATE TABLE IF NOT EXISTS Reviewers_POS(ReviewersPOS_Id int unsigned not null PRIMARY KEY AUTO_INCREMENT, Review_POS TEXT,id_r1 integer,CONSTRAINT fk_id FOREIGN KEY (id_r1) REFERENCES Reviewers (Reviewers_Id));")
: 마지막
역 추적 (가장 최근에 전화를) :
File "SQLTesteForeign.py", line 14, in <module>
cur.execute("CREATE TABLE IF NOT EXISTS Reviewers_POS(ReviewersPOS_Id int unsigned not null PRIMARY KEY AUTO_INCREMENT, Review_POS TEXT,id_r1 integer,CONSTRAINT fk_id FOREIGN KEY (id_r1) REFERENCES Reviewers (Reviewers_Id) ON DELETE NO ACTION ON UPDATE NO ACTION);")
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1005, "Can't create table 'DbOmelete.Reviewers_POS' (errno: 150)")
누군가 그것을 해결하는 방법을 알고 있습니까? 내가 뭔가를 놓친 것 같아요. 왜냐하면 "어디서"가 오류인지 알지 못하기 때문입니다.
두 번째'CREATE TABLE' 문의 구문을 확인하십시오. PRIMARY KEY 절이 올바른 형식이라고 생각하지 않습니다. –