Django で MySQL を使用していますが、外部キーを定義した後に syncdb を実行するとエラーが発生します。
class Contact(SalesforceModel):
Account = models.ForeignKey(Account)
error:
django.db.utils.DatabaseError: (1075, 'Incorrect table definition; there can be only one auto column and it must be defined as a key')
MySQL は、テーブル内の複数の auto_increment フィールドを処理できません。これは珍しい問題ではないと思いますが、これを機能させる方法があるに違いありません。
python manage.py sqlall reports
CREATE TABLE 'Account' (
'Id' integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
'Name' varchar(255) NOT NULL,
);
CREATE TABLE 'Contact' (
'Id' integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
'FirstName' varchar(255) NOT NULL,
'LastName' varchar(255) NOT NULL,
'Account_id' integer AUTO_INCREMENT NOT NULL
);
ALTER TABLE 'Contact' ADD CONSTRAINT 'Account_id_refs_Id_2a366952' FOREIGN KEY ('Account_id') REFERENCES 'Account' ('Id');
CREATE INDEX 'Contact_e5e91692' ON 'Contact' ('Account_id');