1

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

0 回答 0