我在 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');