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